Стоит ли использовать eval для повышения производительности на мобильном JavaScript?

Чтобы объединить все модули в один ресурс, мы написали каждый модуль в отдельный тег script и спрятали код внутри блока комментариев (/* */). Когда ресурс сначала загружается, ни один из кода не анализируется, поскольку он закомментирован. Чтобы загрузить модуль, найдите элемент DOM для соответствующего тега script, разделите блок комментариев и eval() код....

На устройстве iPhone 2.2 200k JavaScript, хранящийся в блочном комментарии, добавляет 240ms во время загрузки страницы, тогда как 200k JavaScript, который анализируется во время загрузки страницы, добавляет 2600 мс. Это более чем 10-кратное сокращение задержки запуска за счет исключения 200k ненужного JavaScript при загрузке страницы!

http://googlecode.blogspot.co.uk/2009/09/gmail-for-mobile-html5-series-reducing.html https://developers.google.com/speed/docs/best-practices/mobile

В статье gmail более трех лет и с тех пор появились большие преимущества в мобильной производительности, а именно такие вещи, как iOS Nitro и JIT, приходящие на мобильный. Ожидается ли увеличение производительности от использования eval?

Ответы

Ответ 1

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

enter image description here

Теперь есть трюки, которые отличаются друг от друга, например, использование веб-работников для запросов ajax для освобождения потока, использование GPU с преобразованиями CSS и requestAnimationFrame или даже asm.js. Использование localStorage/sessionStorage и кэш приложений - это еще один подход в тех строках, где вы можете получить очень много кеширования на стороне клиента, чтобы избежать вызова чего-либо большего, чем содержание JSON/изображений URL-адресов/видеороликов и загрузка/выполнение вещей в память необходимых из этих кешей.

Это другое время, другими словами, и ваш вопрос интересен, но не сосредоточен в правильных областях, чтобы действительно повлиять на производительность веб-приложений.