Обновить
0
AKS@AKS

Пользователь

Отправить сообщение
>откуда в этом случае вылезает оптимизация.

Это Вы про dklab-оптимизацию? Или про какую?
Я для себя давно эти варианты разобрал (и даже, кажется, понял - во как!), но очень хотелось бы обсудить в деталях.
>... какой может быть байткод (и тем более JIT-компиляция) в JavaScript?

Brendan Eich:

For Mozilla 2, we will have a JIT-oriented JavaScript VM...
>ха ха ... сильно удивитесь (-:

Расскажите, Вы "сильно удивлялись" на какой платформе? Ну и, собственно говоря, чему именно Вы "удивлялись" (с подробностями, если можно)?
А Вы меня перепутали с ask. :)
Мне-то все-равно, просто вдруг того человека это как-то потревожит...
Я, конечно, в первую очередь хотел подчеркнуть, что f(v) далеко не всегда быстрее a.b.c.d(v). Но оптимальный вариант, на который Вы обратили внимание, естественно, заслуживает того. Хотя все это упирается в зависимости, которые угадать, как мне кажется, довольно сложно. Это может быть и сам движок, выполняющий js-программу, и окружение, в котором происходит вызов, и т.д. Следовательно, делать выводы об оптимизации в такой нестабильной среде надо очень осторожно.
>для анонимной функции все работает побыстрее

Хорошо, что Вы вспомнили про функции. Ведь, как правило, именно в функциях, а не в глобальной области, выполняется подавляющее количество операций.
Так вот, если тестировать подобное в функциях, то результаты могут оказаться прямо противоположными, и вся эта оптимизация получит знак "минус". Вот здесь можно взглянуть на подобный тест, но с совершенно другими результатами (проявите максимум внимания - там мужчина проделал отличную работу).
Кстати, то, что Вы обращаетесь за материалом "за бугор", не используя "родной", выглядит немного странно. ;)
>в первом случае вызов идет в контексте a.b.c, а во втором в контексте window

Судя по всему, оба вызова функции происходят в глобальном контексте. Разница в том, чьим методом является анонимная функция (function(arg) { return arg; }) в момент вызова.
>Скрипт, кстати, прост как «дважды два», и занимает всего 2 килобайта.

К тому же он просто ужасен. Можно сказать, что каждая вторая строка скрипта демонстрирует полное непонимание того, что происходит.
>А ресурсы то как жрет...

Да, действительно, ресурсоемкость "отвратительней" даже внешнего вида. Интересно, о чем думают те, кто публикует такие демки?
Я не буду повторяться, и указывать на ошибки, допущенные при переводе статьи. По-моему, подобных замечаний уже достаточно. Я бы хотел пожелать автору перевода вот что.
Прежде чем браться за следующий перевод, было бы полезно ознакомиться с основами переводческой деятельности. Сделать это достаточно просто – сейчас очень много литературы, посвященной теории и практике переводческой работы (начать можно с любой небольшой брошюры). Это действительно важно. Ведь для перевода недостаточно просто хорошо знать языки, уметь сопоставлять речевые обороты, находить эквивалентные конструкции. Это все - лишь малая часть работы. Поэтому, как минимум, нужно иметь представление о методике перевода (а это – целая наука).
Кстати, (это возможно самое главное для переводчика) нельзя забывать об авторском праве. Я уверен, что Дуглас Крокфорд заинтересован в переводах своих статей. Но я так же уверен, что он не доверит эту работу кому попало. И тогда уже может возникнуть проблема.

С уважением, и желаю удачи в дальнейшем!
>class Bar {
this.a = "a";
this.b = "b";
}

Это что за структура? Мутант из класса и конструктора?
>Я же про вас а не про arty )

Понимаю. Вы ведь, употребив термин "агрессивность", не сумели раскрыть его смысл. Я предложил Вам эдакую "книжку-с-картинками" только для того, чтоб Вы смогли определиться (или мы все агрессоры, и тогда нечего жаловаться, или подобные выпады не следует ассоциировать с агрессией, т.к. они представляют собой иное явление).

>лучше напишите по JS интересное что-нибудь :)

В этой теме js – это оффтопик. Здесь было бы в тему написать что-нибудь о раскрутке/продвижении/наполнении блога. А js – это лишь инструмент (модная штучка) для достижения дешевой популярности.
>Вы ставите меня в тупик )

Хорошо, давайте я попытаюсь помочь Вам выбраться из вашего тупика. ;)

arty:
>блог команды IE — врага нужно знать в лицо

Агрессивно ли это по отношению к хорошему блогу, который один стоит сотни других "невражеских"?

arty:
>желательно всё-таки качество, а не количество и активность

Агрессивно ли это по отношению к тем, кто здесь активно, в большом количестве оставляет свои "некачественные" комментарии?

arty:
> тупо переводы не очень интересно ... но ладно, другим пригодится

Агрессивно ли это по отношению к тем, кто "тупо" занимается переводами?
Что именно Вы называете "агрессивностью"?
>до свидания

LOL. Я, вообще-то, с Вами не собирался беседовать (взгляните, под чьим сообщением я изначально кликнул "ответить"). Хотя можно было – узнал бы, что такое "карринг".
>чтобы от них плавно перейти уже к более серьезным вещам...

Prototype.js и серьезные вещи несовместимы. О каком "переходе" речь?


>чтобы нагнать контент...

Грош цена такому контенту (мягко выражаясь).


>это неработающий в ие карринг для clearTimeout

А с какой стати это должно работать?


>Вы ведь знаете, что такое карринг?

Да откуда ж мне знать? Лишь Вы посвящены в эту тайну. Кстати, пользуясь случаем, можете попытаться объяснить.
Удача не поможет. Могло бы помочь то, от чего человек отказывается (форумы).
Вообще, заглянул в блог – стало плохо. Зачем ? Зачем писать рассказы для маленьких о prototype.js? Или к чему глупости с "Function.prototype vs timeouts", а также "зачем им .item()"?
Очевидно, что заявление "мне не нужны ответы, потому что вопросов уже почти не возникает" весьма самонадеянно.
>Можно изменить функцию на...

Конечно можно. Я просто пытаюсь отметить, что случай необычный, из разряда тех, для которых нужны также необычные методы. Я считаю, что есть простые и стандартные алгоритмы, которые можно расписать раз и навсегда, вроде addClassName, removeClassName, setOpacity и т.д. А вот в данном случае написать универсальное решение не то, чтобы не возможно, а скорее не нужно. Будет легче отталкиваться от конкретной ситуации (Вы ведь оптимизатор – понимаете). Можно, конечно, пытаться, но при этом будем наступать на одни и те же грабли. Взять, хотя бы, решение Владимира Токмакова. Автор руководствовался желанием найти унифицированное решение. И чем это все закончилось? Вашей статьей... ;)
>однако в данном случае

Если рассматривается частный случай, но термин "универсальное решение" неуместен. Разве нет?

>или я что-то упускаю?

Упускаете то, на что я намекал раньше (чуток перефразируя): isHidden не могут называться универсальными. Можно даже добавить, что вообще не может быть совершенного решения. Это я и пытался показать (но не доказать) на своих примерах. .
>спасибо большое за комментарии!

Вам спасибо за повод присмотреться к деталям работы браузерных движков!

>а какой смысл скрывать body?

Дело в том, что все может быть несколько сложнее (именно поэтому я считаю, что написать что-то универсальное - это "не поле перйти"). Приведу пример, не вдаваясь в подробности. Вот упрощенное правило стиля тела документа – поразмышляйте (когда будет время) о том, для чего это может понадобится и как это может изменить скрипты:

body.hide .hide {
display:none;
}

Информация

В рейтинге
Не участвует
Зарегистрирован