Nawiązując do poprzedniej notki, pierwsze spotkanie odbędzie się 12 lutego w Poznaniu w Klubie ZAK na ulicy Szyperskiej 2. Startujemy o 11:30. Zapraszam wszystkich chętnych.
Prelegentami będą
- Zbyszek Tenerowicz – o jQuery Mobile
- Krzysztof Szafranek – o silniku fizycznym Box2d w JavaScript
- Kamil Trebunia – o audio w HTML5
- Damian Wielgosik – od jQuery do HTML5 i CSS3
- Rafał Kukawski – o Indexed DB API
Więcej szczegółów w notce na JSNews.pl.
W ramach projektu JSNews planujemy organizację serii mini-spotkań, na których każdy zainteresowany programista Front-Endu mógłby wygłosić krótką prelekcję na wybrany przez siebie temat. Pierwsze spotkanie chcielibyśmy zorganizować w lutym, w Poznaniu. Więcej szczegółów w notce na JSNews.
Zainteresowanych konferencją Front Trends 2010 informuję, że wczoraj wieczorem została otwarta rejestracja na wspomniane wydarzenie. Najtańszy zestaw biletów rozszedł się jak świeże bułeczki, zaś w chwili pisania tej notki zostało jeszcze 21 sztuk "Early Birdsów". Polecam! Tej konferencji nie można przegapić.
Wspaniałe wydarzenie czeka nas w październiku. Damian Wielgosik wraz z Pawłem Czerskim przy współpracy z firmą Frontend Force organizują w Warszawie konferencję dla Front-End deweloperów, podczas której swoją wiedzą podzielą się takie gwiazdy jak Douglas Crockford, Peter-Paul Koch, Paul Bakaus, Dmitry Baranovskiy i wielu innych.
Takiego wydarzenia nie można przegapić. Proponuję zarezerwować sobie czas na 21 i 22 października, zagadać do szefa o możliwość przyjazdu i przygotować się na dużą dawkę wiedzy :-)
Właśnie wyczytałem w serwisie Ajaxian informację na temat ciekawej sztuczki dla Internet Explorera 7 i starszych, która pozwala wyszukiwać elementy za pomocą selektorów CSS. W całym projekcie nie byłoby nic dziwnego - ponieważ mamy sporo projektów z własnym modułem wyszukiwania elementów, np. jQuery - gdyby wyszukiwanie nie odbywało się z "natywną szybkością" przeglądarki. Uzyskanie takich rezultatów było możliwe dzięki wyeliminowaniu etapów parsowania treści selektora oraz czasochłonnego wyszukiwania elementów za pomocą DOM.
Projekt wykorzystuje fakt, że Internet Explorer oferuje w implementacji arkuszy stylów funkcjonalność zwaną expressions. Cały trik polega na tym, że podczas każdego wywołania funkcji querySelector, do dokumentu dodawany jest nowy arkusz stylów zawierający selektor przekazany do funkcji i z deklaracją zawierającą wspomniane wyrażenia. Zadaniem expressions jest wypełnienie wynikowej tablicy referencją do każdego elementu pasującego do przekazanego selektora. Po zakończeniu funkcji, dodatkowy arkusz stylów jest usuwany z dokumentu.
Cały kod w wersji zminimalizowanej zajmuje zaledwie 327 znaków.
Poniżej prezentuję kod skryptu.
/*@cc_on
if(!document.querySelector)
document.querySelector=function(s){
d=document;
h=d.documentElement.firstChild;
t=d.createElement("STYLE");
h.appendChild(t);
d.__q=[];
t.styleSheet.cssText=s+"{x:expression(this.__q?0:(function(t){document.__q.push(t);t.__q=0;})(this));}";
window.scrollBy(0, 0);
h.removeChild(t);
return d.__q;
}@*/
Skrypt ten oczywiście ma pewne ograniczenia. Głównym problemem jest możliwość stosowania wyłącznie selektorów obsługiwanych przez przeglądarkę. Z tego powodu dla IE6 odpadnie wykorzystanie m.in. selektora dzieci (>). Drugim faktem jest konieczność udostępnienia wynikowej tablicy w globalnym kontekście bądź jako własności dokumentu, żeby funkcja wywoływana z poziomu expressions miała do niej dostęp. Ale pomimo tych wad, skrypt robi niezwykłe wrażenie. Jest to na pewno jedna z ciekawszych sztuczek zaprezentowanych w ostatnich miesiącach.