Zarówno Safari, jak i Chrome już kompilują JIT. W rzeczywistości, jedyną przeglądarką w powszechnym użyciu, która nie jest IE8 i wcześniej. Jest to jeden z głównych powodów, dla których IE8 jest obecnie wolniejsze niż konkurencja.
Ale czytając między liniami twojego pytania, domyślam się, że nie całkiem rozumiesz, co to jest kompilacja JIT. Kompilacja JIT odbywa się w przeglądarce; nie musisz w żaden sposób zmieniać kodu, aby przeglądarka mogła wykonać dla ciebie kompilację JIT.
Wygląda na to, że tak naprawdę myślisz o kompilacji kodu bajtowego, na przykład Java. Ten kod bajtowy jest faktycznie językiem w połowie skompilowanym, który sam w sobie jest kompilowany JIT podczas uruchamiania programu. Jeśli o tym myślisz, mogę potwierdzić, że nie jest to opcja dla kodu JavaScript w przeglądarce.
Google bawił się technologią o nazwie "Klient natywny" (NaCl), która umożliwia dostarczanie skompilowanego kodu do przeglądarki, ale nie jest to jeszcze dostępne, z wyjątkiem wersji rozwojowych przeglądarki Chrome.
W każdym przypadku kompilacja może sprawić, że twój kod będzie działał szybciej, ale nie rozwiąże podstawowego problemu, dlaczego działa on powoli, co może być o wiele lepszym rozwiązaniem. (nawet skompilowany kod będzie działał źle, jeśli ma wąskie gardła, kompilacja sama w sobie nie poprawia w magiczny sposób powolnego kodu)
Jeśli chcesz dowiedzieć się, dlaczego skrypt działa wolno, polecam użyć narzędzia do profilowania, takiego jak ten wbudowany w Firebug lub narzędzia programistyczne Chrome. Pomoże to zidentyfikować części kodu, które działają powoli.
Można również wypróbować narzędzie YSlow, które może również dostarczyć przydatnych informacji na temat wydajności javascript.
Podkreślasz również, że skompresowałeś skrypt, aby spróbować go przyspieszyć. Skompresowanie skryptu pomoże mu szybciej uzyskać (ponieważ jest to mniejszy plik), ale nie zrobi nic z szybkością, z jaką działa kod.
Mam nadzieję, że to pomaga.
Silnik JavaScript zawsze kompiluje "na czas"; nie możesz obsługiwać binarnego JavaScriptu lub czegoś podobnego. Jednak nigdy nie powinno to stanowić problemu. Czy na pewno nie możesz zaimplementować leniwego ładowania, aby zawartość była ładowana/pobierana tylko podczas przewijania zawartości do widoku? – pimvdb
@pimvdb Teraz możesz uruchomić skompilowany kod asm.js we wszystkich nowoczesnych przeglądarkach przy użyciu Emscripten. – niutech