20.10.2009, 13:44
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
Сообщение от Paguo-86PK
|
Вы наверное i286, i386, P-133 на картинках видели. А у меня они 5 лет назад инструментами были, даже спалил один из-за долбанного куллера
|
Не на картинках я видел Корвет, Поиск, P-133. А что, Вы, собственно, пытаетесь мне доказать? Что я должен тратить ресурсы своей машины, только потому, что "почему бы и нет, черт побери?". Разговор был о том, что все Ваши сжатия, с последующей распаковкой на клиенте, как png, так и eval(function(p,a,c,k,e,d){..}), это говноидеи. Есть gzip. Как Вы собираетесь проводить все это на мобильных девайсах? Их владельцы уж точно не будут рады тупящему телефону/КПК.
|
|
20.10.2009, 13:49
|
|
Рассеянный профессор
|
|
Регистрация: 06.04.2009
Сообщений: 2,379
|
|
А чем eval(function(p,a,c,k,e,d){..}) плох?
|
|
20.10.2009, 13:57
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
А чем он хорош? Насколько сжатие таким образом превосходит gzip? (Учитываем, что гзипить eval -- только увеличивать размер) Стоит ли выгода очень серьезной нагрузки на клиент?
|
|
20.10.2009, 14:03
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от e1f
|
Насколько сжатие таким образом превосходит gzip?
|
packer хуже gzip, т.к. у него еще распаковщик в комплекте вынужден присутствовать. Ну и время на распаковку больше требуется, разумеется.
|
|
20.10.2009, 14:08
|
|
Рассеянный профессор
|
|
Регистрация: 06.04.2009
Сообщений: 2,379
|
|
Сообщение от e1f
|
Учитываем, что гзипить eval -- только увеличивать размер
|
а как вообще этот gzip работает? Принцип в общих чертах расскажите кто-нибудь.
|
|
20.10.2009, 14:30
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от e1f
|
Это же eval на клиенте.
|
А перед eval что?
|
|
20.10.2009, 14:44
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
Сообщение от Kolyaj
|
packer хуже gzip, т.к. у него еще распаковщик в комплекте вынужден присутствовать.
|
Ты имеешь в виду серверный распаковщик aka unobfuscator? Так особо не актуально, если для себя, то есть несжатый вариант. А на клиенте-то никакого распаковщика нет...
UPD либо мы друг друга не поняли, и под распаковщиком имеется в виду преобразования кода, которые происходят в eval'e?
|
|
20.10.2009, 15:23
|
|
Рассеянный профессор
|
|
Регистрация: 06.04.2009
Сообщений: 2,379
|
|
Kolyaj, ты говорил, что сделал штуку, которая собирает все скрипты в один, сжимает и отдает клиенту. Я тут думал на эту тему, скажи, насколько верно я мыслю:
1. обработчик собирает все js-файлы с какой-то папки, если он сам лежит в этой папке, то не нужно учить его, откуда ему все собирать.
2. неясно как определять порядок сборки файлов, можно создать массив в самом обработчике, но если я захочу добавить еще файл, то придется лезть в код и что-то менять, мне это совсем не нравится. Можно рядом положить xml и в нем определять порядок - не многим лучше. Еще вариант: в самих файлах первой строкой дописывать комментарий, в котором что-то вроде z-index-а. Вроде получше, только сами эти z-index-ы мне всегда не нравились, например, определил я порядок {5,6,7,8,9} , далее хочу добавить что-то между 6 и 7, придется искать всех у кого 7+ и увеличивать на 1 - это нудно очень.
3. обработчик собрал все что нужно в один файл, теперь нужно пропустить через какой-нибудь YUICompressor, но это долго, делать так при каждом запросе совсем нельзя, значит нужно где-то сохранить результат, например в all.min.js . При следующих запросах обработчик просто ищет all.min.js и отдает его клиенту, важно время последнего изменения проставлять одно и тоже (такое же как у all.min.js), что бы браузер тоже кэшировал.
4. изменил я какой-нибудь файл, как объяснить обработчику, что он должен заново сгенерировать all.min.js , простейший вариант вручную удалять all.min.js , но желательно обойтись без "вручную". Можно просматривать все js-файлы и если есть такой, у которого дата изменения позже чем у all.min.js , то обновлять all.min.js . Опять же медленно получится, но как лучше я не знаю.
5. не очень хорошо то, что all.min.js на виду лежит, куда бы его запрятать так, что бы совсем нигде не видеть? В asp хоть application есть, не ясно как быть с другими ЯП.
Последний раз редактировалось Riim, 20.10.2009 в 15:27.
|
|
20.10.2009, 15:53
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от e1f
|
либо мы друг друга не поняли
|
Пойдем с другой стороны: packer Дина Эдвардса сжимает скрипт в набор каких-то непонятных символов. Внимание вопрос: кто эти символы распаковывает обратно в рабочий JavaScript?
Сообщение от Riim
|
собирает все скрипты в один, сжимает и отдает клиенту
|
Не сжимает, сжималку мне все лень как-то писать, тем более, что есть YUICompressor.
2. Механизм работы препроцессора аналогичен механизму работы препроцессора языка C с некоторыми дополнениями: строка //#include_once "script.js" в любом файле заменяется на содержимое файла script.js, если в этом сеансе он еще не подключался.
4. Стандартные механизмы работы с кэшем. Например, каждый час/день/месяц обновлять содержимое.
5. Почему нехорошо?
|
|
|
|