Должен ли я заботиться о скорости движка JavaScript при использовании jQuery?

StackOverflow https://stackoverflow.com/questions/1477921

Вопрос

Я пишу jQuery для страницы, которая является сложный беспорядок из множества элементов DOM (Я не могу это контролировать).Основной целевой браузер – IE7, и меня беспокоит скорость его движка JavaScript.Сценарии, которые я уже написал, тормозят и их производительность была настроена в меру моих возможностей.

Я мог бы написать сценарий, который легко поддерживать и понимать, например, используя один contains заявление.Или я могу помочь движку, сужая поиск в DOM с помощью этого беспорядочного HTML, что приводит к большей сложности.

Должен ли я заботиться о скорости движка JavaScript браузера при написании сценариев jQuery?

Это было полезно?

Решение

jQuery написан на JavaScript.Поэтому вам следует заботиться о скорости движка JavaScript, поскольку она также влияет на скорость вашего кода jQuery.

Существует множество советов и рекомендаций о том, как писать более эффективный код jQuery.Главный принцип — понять, как работает jQuery, как селекторы транслируются в запросы, выбирающие элементы из DOM и так далее.

Другие советы

По возможности старайтесь использовать собственные методы Javascript вместо методов jQuery, и вы, как правило, заметите существенное улучшение скорости. особенно в ИЕ. Механизм рендеринга JS в IE просто SLLLOOOOWWW по сравнению с другими неплохими браузерами.

Например, у меня был сценарий AJAX, который нормально работал в FF/Safari, но в IE работал как замороженная патока.Оказывается, разработчик, написавший это, активно использовал метод jQuery $.each() для получения данных из большого файла JSON.Я переписал сценарий, чтобы использовать вместо него стандартные циклы JS for(), а затем проведя несколько тестов скорости, выяснилось, что использование for() работает более чем в ДВАДЦАТЬ раз быстрее.

Да, но не стоит на этом зацикливаться :)

Содержимое может быть относительно медленным, поскольку я не верю, что модель документа каким-либо образом индексируется по тому, какой текст появляется внутри элементов.

Однако я не уверен, что разумно пытаться что-то перепроектировать и оптимизировать ради оптимизации.Выбирайте самое простое, что работает, тестируйте, а затем оптимизируйте, если у вас возникнут проблемы.

Я не сталкивался ни с одним случаем, когда преимущества использования JQuery или плагина (кросс-браузерная совместимость, чрезвычайно полезная функциональность) перевешивались снижением скорости.И иногда я работаю с довольно большими веб-страницами.

В любом случае, единственный способ узнать это — попробовать.Сначала напишите свой код максимально разумным способом.Если он слишком медленный, вы можете попытаться его оптимизировать.

Оптимизация обхода DOM
http://www.learningjquery.com/2006/12/quick-tip-optimizing-dom-traversal

Нет, вас это не должно волновать, потому что это не должно влиять на то, как вы пишете код.

Другими словами, вам ВСЕГДА следует писать эффективный Javascript, как потому, что это просто хорошая практика, так и потому, что для большинства сайтов вы понятия не имеете, какой браузер использует тот или иной конкретный пользователь, поэтому вы также можете предполагать худшее.

Да, вам следует беспокоиться, но, к счастью, команда jQuery обеспокоена не меньше:

Недавние изменения во внутреннем устройстве jQuery (см. два последних слайда)

Не переусердствуйте, а оптимизируйте столько, сколько вам нужно.

Если это медленно, то у вас действительно нет другого выбора, кроме как пойти туда и помочь jquery.Но если это не так, то зачем беспокоиться.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top