Tema: jQuery i Ext
Pogledajte određenu poruku
Staro 28. 02. 2007.   #4
Ilija Studen
Direktor Kombinata
Invented the damn thing
 
Avatar Ilija Studen
 
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
Ilija Studen će postati "faca" uskoroIlija Studen će postati "faca" uskoro
Default

Uglavnom se pominju dva termina koja manje više označavaju jednu te istu stvar: progressive enhancement i unobtrusive JS. Poenta je u tome da se JS koristi na sličan način kao CSS - includeuje se spoljni fajl u kome se nalazi sav JS koji uz pomoć niza queryja (DOM query, CSS selektori, XPath) vadi elemente iz DOM drveta i "kači" im odgovarajuća svojstva i/ili ponašanje. Jedan jednostavan primer sam okačio na temi o custom atributima:

Kôd:
$(document).ready(function(){
  $('a[@method=post]').click(function() {
    var the_link = $(this);
    if(the_link.attr('confirm')) {
      if(!confirm(the_link.attr('confirm'))) {
        return false;
      }
    }
    return App.postLink(this);
  });
});
Tehnilki, ovo radi sledeće. Kada je dokument učitan nađi sve linkove koji imaju atribut metod sa vrednošću post i nakači im odgovarajuće ponašenje (confirmation dijalog i submit kroz POST). Ukoliko JS nije odobren ekterni JS fajl neće biti učitan i procesiran tako da će se linkovi ponašati kao klasični linkovi, bez ikakvih dodatnih mogućnosti.

Ono što je bitno je da ovakve tehnike donose dosta ograničenja pa moraš da se dovijaš na milion načina da bi bio dosledan. Takođe moraš da smisliš jednostavan način kako da JS-u proslediš podatke ukoliko je to potrebno (tip: lista aktivnih projekata, lista ulogovanih korisnika, lista upcoming milestonea) pošto JS nema jednostavan način da to učita bez dodatnih requestovan na aplikaciju (dodatni HTTP request, inicijalizacija aplikacije i obrada zahteva su baš performance killer tako da to definitivno želiš da izbegneš).

Definitivno sam za to da se koriste unobtrisive tehnike, ali je često nepraktično tako da se igram sa idejom da activeCollab zahteva enableovan JS kako bi mogao da se napravi stvarno dobar interfejs + lite verzija za mobilne uređaje i korisnike koji ne mogu (ili ne žele) da uključe JS. Dobra stvar je što imaš jedan ozbiljan feature za naslovnu stranicu (Now mobile device friendly!) plus si rešio bede što se JS-a tiče. No, videćemo...

Poslednja izmena od Ilija Studen : 28. 02. 2007. u 14:05.
Ilija Studen je offline   Odgovorite uz citat