Showing posts with label Javascript. Show all posts
Showing posts with label Javascript. Show all posts

Friday, May 14, 2010

Kiedy technologia Microsoftu jest włączana do CSS3

Ile razy czytam o nowych standardach webowych tylko wciąż na mojej twarzy pojawia się grymas gdy zadaję sobie pytanie "Czy to będzie działać w IE" albo "Jak to będzie działać w IE". Dzisiaj trafiłem na chlubny wyjątek, który potwierdza regułę.
Ostatnio jestem na etapie próby skonstruowania czcionki i użycia jej na stronie. Jest taki fajny programik FontForge, któremu można używając opcji import zassać kształty z jakiś plików grafiki wektorowej i sobie z tego zrobić czcionkę. W CSS3 pojawiła się fajna opcja @font-face, która pozwala używać na stronie czcionki, zuplodowanej wcześniej na serwer, czyli każdej :] Fajne szalenie.
Jaki byłem zszokowany, gdy okazało się, że Internet Explorer obsługuje to od wersji 4. Po prostu 110% szoku. To już kolejny raz kiedy doznaję czegoś równie wstrząsającego! Pierwszy raz nie mogłem uwierzyć, że Webforms2 działają w IE6, a w wielu innych przeglądarkach trzeba sobie oszukiwać specjalną biblioteką napisaną w Javascripcie. Po prostu szok.
Jak to więc jest kiedy to technologia, wcześniej zaimplementowana w przeglądarce Microsoftu zostaje włączona do portfolio nowoczesnych przeglądarek? Fajnie :) Miło :) i szalenie sympatycznie, gdy człowiek czuje się tak MIŁO ZASKOCZONY. Wystarczy, że fani darmowych przeglądarek używają ich w najnowszych wersjach i możemy spokojnie bez obaw używać sobie dowolnych czcionek na stronach :] Czad!

Przetwarzanie u klienta a requesty do serwera

Dwa dni temu trafiłem na ciekawe zagadnienie. Mam około 166 KB danych w postaci wartość: klucz i mam taką listę odfiltrowywać w jquery ui autocomplete. Początkowo bardzo chciałem uniknąć ciągłego odpytywania serwera więc napisałem filtrowanie pełnej listy w jQuery mniej więcej tak:

source: function(request, response) {
if (cache.length > 1) {
matched = jQuery.grep(cache, function(element, index) {
return element.name.search(request.term) != -1;
});
return response(matched);
}
$.getJSON("/javascript/data.json", function(data) {
cache = data;
response(data);
});
},
Byłem szalenie zaskoczony gdy to rozwiązanie okazało się wolne! Wciąż słyszę tylko, że JavaScript jest wciąż przyspieszana, że któryś z silników prześcignął inny i potem znowu, że ktoś znowu bije rekordy szybkości JS... a tutaj takie zaskoczenie.
Generalnie pierwsze wpisanie litery pobierało wszystkie dane, które po pierwszym pobraniu, które trwało naprawdę długo potem zaczynały już szybciej się filtrować, ale nadal to było toporne. Testowałem to w Chrome 4 i powiem szczerze. To nie działało jakoś super szybko. W ogóle się tego nie spodziewałem. Jak jeszcze pomyślałem, że > 50% użytkowników wyszukiwarki to IEowcy... nie, to nie miało szans powodzenia. Nawet kiedy Chrome działało tak sobie.
Generalnie szybko zakodowałem standardową wersję z bazą danych, odpytywanie serwera przy każdej literce. Zaczęło działać naprawdę dobrze. Plusem było na pewno to, że można było ograniczyć zapytanie do 10 wyników, a nie pakowało się 166KB danych. Tego mi w sumie zabrało w jQuery, żeby był parametr do funkcji grep, który mówi po ilu elementach przerwać - może wtedy byłoby szybciej.
Podsumowując: jeżeli masz do wyboru pobrać dużo danych do JS i filtrować je u klienta, a zrobić standardowo filtrowanie po stronie serwera i odpytywać o wyniki serwer - wybierz drugie, chyba, że znasz sprytniejszy sposób zrobienia tego co ja próbowałem po stronie JS.

Tuesday, November 24, 2009

Ruby on V8, Python on V8? Koniec ery JavaScript?

To nieźle zabiło mi klina. Od tygodnia trafiam na linki związane z odpaleniem jakieś skryptu napisanego w Pythonie czy Ruby na V8.

Ruby on V8
Binding Python to V8
PyV8

Projekty wyglądają raczej na próby i eksperymenty niż realnie zarysowującą się perspektywę wykorzenienia JavaScript. To jednak dobry znak. Wiadomo - V8 pisane jest z myślą o zwiększeniu wydajności JS i jakby "pod JS" dlatego inne języki mogą sobie radzić na tej wirtualnej maszynie różnie, raz znacznie lepiej innym razem gorzej, jednak sam fakt istnienia wirtualnej maszyny w przeglądarce, uświadomienie sobie tego i próby odpalenia tam współczesnych dzisiejszemu światu języków programowania daje nadzieję na przyszłość.

Nie potrafię opisać emocji jakimi napawa mnie myśl wykorzystywania pQuery albo rQuery :) w kombinacji z genialną składnią Pythona czy klasami Rubego. Może dla naszych dzieci


<script src="script.rb" type="text/ruby"></script>
<script src="script.py" type="text/python"></script>


będzie już czymś normalnym:) Pożyjemy zobaczymy! Trzymam kciuki za eksperymenty i żywię głęboką nadzieję na prezentowany w tym wpisie obrót spraw!