JavaScript переводится в последовательность байт, которая записывается как изображение. Изображение сохраняется в PNG-формате, в PNG используется довольно эффективное сжатие, что даже при расходах на заголовок даёт ощутимые результаты — известная библиотека Prototype (124 килобайта) стала занимать всего 30 килобайт в восьмибитном PNG-файле. Каждый пиксель в 24-битном PNG позволяет хранить три байта информации, в 8-битном формате — один.
Далее PNG-изображение загружается в тег CANVAS (нужный функционал поддерживается FireFox, WebKit/Safari и бета-версией «Оперы») и считывается попиксельно функцией getImageData, после чего полученный код выполняется (eval) и мы получаем исходный JavaScript.
Сжатие JavaScript, используя PNG и Canvas
posted by
nathrezim.livejournal.com/ at
May 6, 2008 СвернутьРеально, конечно, в JS используют только сжатие кода за счет выкидывания из кода комментариев и лишних символов (переводы строк, отступы,...).
Это Болк уже извращается... =)
posted by
ilvar at
May 6, 2008 СвернутьГде-то в тех же краях видел Mario и Wolfenstein 3D на JS, долго веселился.
Изврат с PNG точно не работает в Internet Explorer, но теоретически было бы интересно его с gzip-ом сравнить по эффективности.