ОРФографическое
   Улучшение
    Сайтов|
Orphus community
Orphus Community
Orphus community forum.
 

Модификация: orphus.minimal. (Дмитрий Котеров)
Автор Сообщение
Дмитрий Котеров
Заглянувший



Зарегистрирован: 01.01.1970
Сообщ.: 5
Карма: 8
   поощрить/наказать


СообщениеДобавлено: Пт Июл 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, то я, конечно, пришлю соответствующий фикс :-)

Пойдет?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дмитрий Котеров
Заглянувший



Зарегистрирован: 01.01.1970
Сообщ.: 5
Карма: 8
   поощрить/наказать


СообщениеДобавлено: Пт Июл 29, 2005 10:46 pm (спустя 6 минут; написано за 47 секунд)
   Заголовок сообщения:
   Ответить с цитатой

Александр Неткачев писал(а):
Regexps задаются не через new RegExp(), а через //.
Вот это, кстати, зря. В старых браузерах будет синтаксическая ошибка - они не понимают оператор //, даже если до него не доходит управление в коде. А с RegExp - все корректно.

ОК.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Бякин
Гость





Карма: 300
   поощрить/наказать


СообщениеДобавлено: Вс Янв 29, 2006 4:06 am (спустя 5 месяцев 30 дней 5 часов 20 минут; написано за 5 минут 36 секунд)
   Заголовок сообщения:
   Ответить с цитатой

В чём я все-таки вижу один недостаток(хотя такой подход убрал пару недостатков), так это в том, что орфус грузится не из фрейма, поэтому он воспринимается как часть страницы и не может быть прокеширован отдельно., а когда орфус грузится из фрейма, мы его можем прокешировать на несколько часов, и он больше не будет грузиться вновь с каждой посещаемой страницей.
Ну и еще одно преимущество фреймового метода, - орфус можно обжать GZip'ом, не в зависимости от того, какой тип контента, в текстовом или бинарном виде выводится читаемая страница.
Вернуться к началу
www.school158.ru
Участник форума



Зарегистрирован: 28.07.2004
Сообщ.: 77
Карма: 12
   поощрить/наказать


СообщениеДобавлено: Пт Dec 05, 2008 7:48 pm (спустя 2 года 10 месяцев 7 дней 15 часов 42 минуты; написано за 1 минуту 18 секунд)
   Заголовок сообщения:
   Ответить с цитатой

В Орфусе 5.01 применены идеи Александра Неткачева по сокращению кода и размещения iframe внутри javascript?

Последний раз редактировалось: www.school158.ru (Чт Июн 25, 2009 10:35 pm), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дмитрий Котеров
Заглянувший



Зарегистрирован: 01.01.1970
Сообщ.: 5
Карма: 8
   поощрить/наказать


СообщениеДобавлено: Сб Dec 06, 2008 10:01 pm (спустя 1 день 2 часа 13 минут; написано за 6 секунд)
   Заголовок сообщения:
   Ответить с цитатой

Можно сказать и так.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начaть нoвую тeму   Ответить на тему Часовой пояс: GMT + 4 (Москва, Лето)
Страница 1 из 1    Отправить ссылку другу
Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать в опросах. Вы можете отправлять сообщение модераторам. Вы не можете прилагать файлы к сообщениям. Вы можете скачивать файлы.