Mar 31, 2009
Navigare mai rapida cu preload inteligent
Poti fura niste milisecunde dintr-o actiune cu mouse-ul daca te folosesti de evenimentul onMouseDown() din DOM.
Anticipezi logic actiunea de click odata ce butonul mouse-ului este apasat asa ca poti declansa un fir de executie in JS imediat ce ai inregistrat inceputul.
Acest truc iti permite sa “furi” cateva milisecunde pretioase din timpul unui download.
Un truc poate fi aplicat cu success este sa te folosesti de onMouseOver pe controalele dintr-o galerie foto intr-un sistem de livrare prin AJAX.
Mi se pare o actiune logica sa incepi preload-ul in background a pozei determinate de un thumbnail cand ai o constructie de navigatie similara cu cea de la Flickr. Din punct de vedere al interfetei ai putine motive sa faci hover peste acele imagini daca nu doresti sa navighezi prin galerie.
Desigur, e o jonglerie de performanta. Daca lansezi prea multe download-uri bazate pe actiuni incomplete ale userului poti deteriora experienta, dar cred ca daca iti gandesti bine planul de preload iti poti face galeria sa para mai rapida (as in responsive) pentru ca te folosesti de milisecundele dintre onMouseDown() si onClick()-ul complet pentru a incarca in browser o parte din continut.
Foloseste onMouseDown cu responsabilitate!
Uneori imi dau seama ca fac un click din greseala si imi mut cursorul de pe link, apoi dau drumu butonului. Asta impiedica actiunea de click.

Picasa incarca si poza urmatoare, tot timpul.
Si nu sunt sigur, insa am impresia ca daca navighezi mai rapid incarca 2-3 in avans, da’ n-am cum sa demonstrez.
@add
Sunt multe lucruri de finete pe care le poti imbunatati, insa trebuie sa tii in balanta cat poti sa rafinezi un workflow comparativ cu ce alte feature-uri mai trebuie sa construiesti.
Time is money! :)