Forleden faldt jeg over en artikel af Jeremy Keith, et medlem af The Web Standard Project. Artiklen handler, sjovt nok, om hvordan man bør og kan, designe sin webapplikation, sådan at flest muligt får mulighed for at bruge den - en teknik Jeremey har valgt at kalde "Hijax".
Problematikken med at visse applikationer udelukker visse brugere, har længe fundet sted, og specielt opstår dette problem ved brugen af Javascripts, Flash eller andet scripting, som stille specielle krav til browseren. AJAX is all about Javascript, og med den store fremgang denne "teknik" har fået, er problemet, selvsagt, ikke blevet mindre.
Vi hopper på Javascript-vognen uden at tænke over at der stadig kan komme brugere til, som ikke har mulighed for at afvikle de smarte features man kan opnå med AJAX, og i værste fald ødelægger dette mere, end den vundne feature ville have givet.
Dette er lige nøjagtig hvad man med Hijax vil forsøge at komme til livs! I denne post vil jeg forklare lidt mere grundlæggende, hvad der ligger i Hijax, for snarest at komme med en mere praktisk gennemgang.
Update 28/04-08: Live-search understøtter nu ÆØÅ - download ny version i slutningen af denne post!
I forbindelse med det sidste nye redesign, har jeg oprettet en "Live search". Nåhhh ja, den er måske ikke så live som en definition vil have det - men det er da en fed feature - og funktionaliteten bag den, vil jeg da gerne dele med jer.
Denne post består således af en gennemgang, af de vigtigste punkter i implementeringen, det være sig lidt XHTML, CSS, Javascript samt PHP.
I slutningen af posten, kan du desuden downloade en lille demo-version af funktionen.
Jeg har i længere tid gået og tænkt lidt over, om jeg ikke kunne få lidt mere indhold ind på min blog...
Jeg kommer forbi mange blogs som f.eks. har et plugin der viser personens sidst afspilede musik numre, eller posters af de spil personen spiller pt., projekter som en udvikler arbejder på osv. - Lidt ligesom jeg har min Flickr Feed, altså små widgets som kan være med til at der sker lidt mere på siden.
Og så har jeg længe ikke rigtig vidst hvorfor jeg har den "nyheds post" som du pt. finder nederst på siden. For læææænge side, da jeg besluttede mig for at lave dette site, brugte jeg den lidt som en todo/updater, altså et sted hvor jeg kunne skrive et par linier om de sidste nye tiltag jeg havde lavet på sitet - dette bliver den vel til dels også brugt til stadigvæk, men nu tror jeg nok, at den skal til at have et lidt andet formål.
Jeps, så skete det igen ... jeg kunne ikke holde ud at se på mit gamle design mere.
Der er faktisk ikke så meget at sige til det - jeg har ikke selv designet denne gang, hvilket vidst kun er for det bedre. Jeg er endnu engang blevet bekrætet i, ikke at være designer.
URLerne, og selve navigationen, er den samme som før - læs evt. her. Til gengæld har jeg fået en del øvelse i at kode administrationen (CMS om man vil). Som jeg kort forklarede sidste gang jeg lavede om, var jeg ude i noget vældig smart "on site" AJAX redigering - men det holdt ikke, så nu har jeg lavet en blog administration fra bunden - og den er jeg faktisk riiiimelig tilfreds med.
Alt dette kan I, i-og-for-sig være ligeglade med - men jeg har også tænkt på jer :D
I den tid jeg har arbejdet hos Reklamebureauet ReFocus A/S, har min interesse for AJAX for alvor taget til. Med en god blanding af prototype og Script.aculo.us og andre visuelle scripts, har vi mulighed for at lave hjemmesider, der ligner og fungerer mere og mere som "almindelige" dekstop applikationer - Men der er et catch eller flere!
Et af de første problemer jeg hørte om, var problemet med browsers back-buttons, hvilket der heldigvis findes en løsning på - og lad os ikke glemme, at dette faktisk kun finder sted, når vi bruger AJAX til navigation, eller fjerner/opdaterer et element, så det gamle indhold forsvinder.
Alex Bosworth har skrevet et par artikler om diverse problemer, som folk enten overser eller ikke kender til - Meget interessant og relevant læsning, for folk der vil igang, eller er igang med AJAX.
Her sidder jeg så, helt alene en fredag eftermiddag på arbejdspladsen og døjer med AJAX ... hold da kæft en nørd jeg er blevet :\ --- Nå, men jeg har faktisk fundet ud af noget idag, og det vil jeg lige dele med jer.
Problemet ligger i Prototypes Ajax.Updater funktion, mere specifikt er det AJAX.Updater og Internet Explorers cache. Løsningen skulle vise sig at være noget så simpel.
Ajax.Updater
Ajax.Updater er en funktion i Prototypes framework, som hurtigt og nemt lader dig updaterer et valgt div-tag med en valgt fil, metodekaldet se ud som følgende:
Funktionen er en forenkling af deres Ajax.Request funktion, i hvilket du ofte vil definerer ekstra funktion til at hånderer responset. Ajax.Updater gør det hele for dig, opretter et requets til filen (anden parameter) og placerer responset i dit div-tag (første parameter) - Det var i hvert fald meningen.
Weeee... så fik jeg endelig det nye design i luften! Men det er nu også langt fra kun designet der er skiftet, faktisk har jeg skrevet hele "maskineriet" bag sittet om.
Du har måske lagt mærke til at der har være lidt stille her den seneste tid, hvilket langt hen af vejen grunder i arbejde med at få de mange idéer implementeret. Til sidst var jeg knap nok inde og se på mit gamle site, da jeg allerede så på det med gamle øjne. Det resulterede i et væld af spam (Tjaa, fik aldrig rigtigt mit spam-filter til at virke ordentligt), og jeg endte med at fjerne muligheden for at kommentere.
Nu er der nye tider på vej - jeg har lavet en hel del ændringer, og her kommer så en kort introduktion til det nye site.
Som jeg skrev for i posten "Webcrawler", har jeg måtte se mig nødsaget til at implementerer et spam-filter på siden, da en ubehøvlet edderkop har fundet vej til mit domæne. I den process fik jeg endnu engang lejlighed til at lege lidt med AJAX, denne gang handler det om en lille fed feature - Edit in place.
Det er ikke længe siden jeg skrev en post om min ynglings-messenger, Miranda IM. Derfor blev jeg hurtigt fanget da jeg på digg.com faldt over posten Radius IM.
Radius IM er en web-baseret AJAX chat/IM-service. Dette er set før, men som deres forside selv foreslår:
Radius IM benytter nemlig Google Maps, som lader dig navigerer verden rundt, og finde venner eller bare tilfældige folk at snakke med.
Endnu en lille hyles til OpenSource miljøet:
Jeg har faktisk længe haft Lightbox JS til at ligge i min "usefull_stuff" mappe, men havde fuldstændig glemt det igen. Her forleden faldt jeg så pludselig over det igen, og endte på programmøren, Lokesh Dhakar's hjemmeside. Glædeligt nok skulle det vise sig, at der var kommet en ny version af scriptet.
For et par dage siden skrev jeg lidt om AJAX. Jeg nævnte at script.aculo.us havde en dejlige pakke til fri download, indeholdende en god samling scripts, til at bygge spændende, interaktive webapplikationer. Nu har jeg måske fundet endnu en kilde!?
Yahoo! har udgivet en lignende pakke de kalder Yahoo! User Interface Library. Interfacet og et tilhørende Yahoo! Design Pattern Library er faktisk hvad der Yahoo! selv benytter, sådan står det skrevet på deres tilhørende developer blog.
Denne post er nok mest dedikeret til alle kode-hovederne derude.
Kan du lide at programmerer, mere konkret web-programmering, har du sikkert hørt om AJAX? Hvis ikke, giver vores alle sammens gode ven, Wikipedia, en god introduktion til AJAX.
AJAX er en forkortelse for Asynchronous JavaScript And XML, og er faktisk ikke noget nyt, men blot en sammenfatning ved brugen af JavaScripting og XML. Meget kort fortalt, går AJAX ud på at sende og modtage data, uden at skulle reloade en side, hvormed din side kommer til at virke mere dynamisk.