Автор |
Сообщение |
Дмитрий Кóтеров
Администратор
Зарегистрирован: 10.03.2003
Сообщ.: 13502
Карма: 383 поощрить/наказать
|
Добавлено: Пт Июл 29, 2005 12:34 pm (написано за 2 минуты)
Заголовок сообщения: Модификация: orphus.minimal.
|
|
Следующая переписка состоялась с Alexander Netkachev.
> Alexander Netkachev: > Функциональность кода со стороны пользователя не изменилась, но в > скрипте некоторые части значительно изменены. Например убрана вся > логика с translations, изменено получение selection, переделана > инициализация (это то, что я помню).
Dmitry Koterov: Ну и как же мне теперь посмотреть, что именно изменилось? Кстати, учитывайте, что кроссбраузерность Орфуса отлаживалась очень долго. То, что Вы что-то изменили, - замечательно, но Вы уверены, что после этих правок Орфус продолжить работать в тех браузерах, где он работал до этого? > Идея обфускатора, который просто сократил бы имена переменных, мне > приходила в голову. Но обфускатор не даст такого сокращения кода - я > думаю, что он уменьшит объем кода на 30-40%, но не больше. (Кстати, я > попробовал > www.javascript-source.com/javascript-obfuscator.html
> - он умеет менять имена - результат 6kb). > Так что я решил, что наиболее подходящим решением будет анализ > изменений в Orphus и адаптация их для Orphus.minima, если Вы, конечно, > не против, что бы проект minima жил дальше - Orphus Ваше изобретение и > я хотел бы спросить Вас об этом. Знаете, что Вы сделали? Вы, фактически, отщепили от проекта отдельную и совершенно независимую ветку, которую почти невозможно объединить с основной веткой, которую трудно отлаживать, которую сложно развивать и, наконец, почти не имеющую обратной связи от багрепортов пользователей. Единственное ее достоинство - это сокращение объема кода, остальное - сплошные минусы. Если Вы считаете все это правильным, то ОК. Но я все же придерживаюсь противоположного мнение.
>> > Хочу рассказать, что я сделал на основе Orphus модификацию >> > для блогов (blogger, livejournal, etc). Я значительно уменьшил >> > код, оставил информацию о Вашем авторстве, добавил немного о >> > своем и назвал результат Orphus.minima. >> >> > Вы бы не могли посмотреть на сие чудо на страницах >> > pronote.blogspot.com/ и >> > progarts.blogspot.com/. Мне очень интересно Ваше мнение. >> >> Вы что-то меняли в функциональности, или же просто уменьшили >> размер кода за счет сокращения длины идентификаторов? >> >> Если второе, то - что же, очень хорошо. Однако есть один большой >> минус: код в таком виде становится совершенно нечитабельным и >> неотлаживаемым, а потому - сильно затрудняется создание новых >> версий Орфуса и исправление ошибок в старых. Мне легкость >> поддержки важнее, чем объем кода (тем более, что стандартное >> исполнение Орфуса в виде IFRAME заставляет браузер кэшировать >> код, но даже если кэш пуст, то скорость загрузки страницы все >> равно практически не уменьшается - за счет IFRAME как раз). >> >> Вот если бы Вы написали автоматический скрипт-конвертер, которому >> на вход подают "длинный" скрипт, а он на выходе дает >> "короткий"...
|
|
Вернуться к началу |
|
|
Александр Неткачев
Заглянувший
Зарегистрирован: 27.07.2005
Сообщ.: 1
Карма: 1 поощрить/наказать
Откуда: Украина, Крым, Симферополь
|
Добавлено: Пт Июл 29, 2005 10:39 pm (спустя 10 часов 5 минут; написано за 25 минут 11 секунд)
Заголовок сообщения:
|
|
Цитата: |
Ну и как же мне теперь посмотреть, что именно изменилось? |
Основное измение концептуальное: программу можно использовать на сайте без создания дополнительного HTML файла. Соответственно весь JavaScript и форма работают теперь в контексте страницы и это повлекло за собой исправление обращения к parent из оригинального скрипта Orphus. В частности, было исправлено получение Selection. В сокращении кода применены следующие подходы: 1. Форма отправки генерируется следующим методом:
Код (JavaScript): |
скопировать код в буфер обмена |
var a={version:"3.4", email:"", subject:N, charset:"", to:"Пользователь Orphus", ref:"", c_pre:"", c_sel:"", c_suf:"", c_pos:"", c_tag1:"", c_tag2:"", nostat:""}; for(k in a) { var z = d.createElement('input'); z.name = k; z.value = a[k]; z.type = 'hidden'; R[k]=P.appendChild(z); } |
2. Для обращения к document, window, форме отправки и картинки используются однобуквенные shortcuts у класса orphus. 3. Удалены все комментарии, кроме того, который содержит информацию о авторстве. 4. По возможности, переменные определяются в одном блоке var. 5. По возможности, обращения к методам вида obj.method() заменены на m:"method", obj[m](). 6. Убраны переменные с сообщениями. 7. Подкоррекстировано использование with(this){...} где это давало уменьшение размера. 8. Regexps задаются не через new RegExp(), а через //. Может еще несколько незначительных оптимизаций, но это главные. Общая функциональность блоков doSend, orphus_thanks, onkeypress изменена незначительно, набор функций остался тот-же.
Цитата: |
Кстати, учитывайте, что кроссбраузерность Орфуса отлаживалась очень долго. То, что Вы что-то изменили, - замечательно, но Вы уверены, что после этих правок Орфус продолжить работать в тех браузерах, где он работал до этого? |
Конечно не уверен Скорее всего, он не будет работать во всех броузерах, где работал. Но об этом чуть позже.
Цитата: |
Знаете, что Вы сделали? Вы, фактически, отщепили от проекта отдельную и совершенно независимую ветку, которую почти невозможно объединить с основной веткой, которую трудно отлаживать, которую сложно развивать и, наконец, почти не имеющую обратной связи от багрепортов пользователей. Единственное ее достоинство - это сокращение объема кода, остальное - сплошные минусы. Если Вы считаете все это правильным, то ОК. Но я все же придерживаюсь противоположного мнение. |
Да, в общем, я это знаю. Но это решение является следствием того, что я очень хотел добавить Orphis на блоге и, по возможности, уменьшить нужный для этого код, что бы страница загружалась быстрее. Возможно, если Вы со временем модифицируете Orphus так, что бы я смог использовать его без создания дополнительного HTML в моей модификации отпадет необходимость. В общем, я предлагаю остановиться на следующем: давайте немного подождем. Как говориться, какая разница, сколько в проекте надостатков и под какими броузерами он не работает, если он никому не нужен Если он не будет пользоваться популярностью, то мой блог останется единственным, на котором находится Orphus.Minima. Если же он будет пользоваться успехом, то и с броузерами разными я его оттестирую и с багами справлюсь. И если аналогичная бага будет и в Orphus, то я, конечно, пришлю соответствующий фикс Пойдет?
|
|
Вернуться к началу |
|
|
Дмитрий Кóтеров
Администратор
Зарегистрирован: 10.03.2003
Сообщ.: 13502
Карма: 383 поощрить/наказать
|
Добавлено: Пт Июл 29, 2005 10:46 pm (спустя 6 минут; написано за 47 секунд)
Заголовок сообщения:
|
|
Александр Неткачев писал(а): |
Regexps задаются не через new RegExp(), а через //. |
Вот это, кстати, зря. В старых браузерах будет синтаксическая ошибка - они не понимают оператор //, даже если до него не доходит управление в коде. А с RegExp - все корректно. ОК.
|
|
Вернуться к началу |
|
|
Бякин
Гость
Карма: 300 поощрить/наказать
|
Добавлено: Вс Янв 29, 2006 4:06 am (спустя 5 месяцев 30 дней 5 часов 20 минут; написано за 5 минут 36 секунд)
Заголовок сообщения:
|
|
В чём я все-таки вижу один недостаток(хотя такой подход убрал пару недостатков), так это в том, что орфус грузится не из фрейма, поэтому он воспринимается как часть страницы и не может быть прокеширован отдельно., а когда орфус грузится из фрейма, мы его можем прокешировать на несколько часов, и он больше не будет грузиться вновь с каждой посещаемой страницей. Ну и еще одно преимущество фреймового метода, - орфус можно обжать GZip'ом, не в зависимости от того, какой тип контента, в текстовом или бинарном виде выводится читаемая страница.
|
|
Вернуться к началу |
|
|
antton
Участник форума
Зарегистрирован: 28.07.2004
Сообщ.: 77
Карма: 11 поощрить/наказать
|
Добавлено: Пт Dec 05, 2008 7:48 pm (спустя 2 года 10 месяцев 7 дней 15 часов 42 минуты; написано за 1 минуту 18 секунд)
Заголовок сообщения:
|
|
В Орфусе 5.01 применены идеи Александра Неткачева по сокращению кода и размещения iframe внутри javascript?
Последний раз редактировалось: antton (Чт Июн 25, 2009 10:35 pm), всего редактировалось 1 раз
|
|
Вернуться к началу |
|
|
Дмитрий Кóтеров
Администратор
Зарегистрирован: 10.03.2003
Сообщ.: 13502
Карма: 383 поощрить/наказать
|
Добавлено: Сб Dec 06, 2008 10:01 pm (спустя 1 день 2 часа 13 минут; написано за 6 секунд)
Заголовок сообщения:
|
|
Можно сказать и так.
|
|
Вернуться к началу |
|
|
|
Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать в опросах. Вы можете отправлять сообщение модераторам. Вы не можете прилагать файлы к сообщениям. Вы можете скачивать файлы.
|
|