вопросы производительности при динамической загрузке объектов Javascript - PullRequest
1 голос
/ 09 мая 2009

Что быстрее,

  1. Использование XMLHTTP-запроса Get и затем использование eval () для текстового ответа

  2. Использование метода JSONP для загрузки скрипта и последующего подтверждения innerHtml скрипта.

  3. Динамически добавлять тег сценария в заголовок документа, в котором объект javascript назначается переменной?

Моя интуиция говорит мне, что это должен быть вариант 3, но я не уверен, как eval сравнивается с использованием тега script. Есть мысли?

Ответы [ 3 ]

1 голос
/ 09 мая 2009

Это может варьироваться в зависимости от браузера и некоторых других факторов, поэтому я думаю, что если вы действительно хотите добиться максимальной производительности, вам следует провести несколько тестов и профилировать их. С одной стороны, производительность eval () может сильно отличаться в зависимости от того, что вы используете eval ()

0 голосов
/ 11 мая 2009

Я согласен, что библиотека JSON2 - это, вероятно, путь для eval (). Но для транспорта похоже, что механизм JSONP работает быстрее, чем XMLHTTPRequest, согласно некоторому анализу, выполненному Джоном Резигом.

http://ejohn.org/blog/native-json-support-is-required/

0 голосов
/ 09 мая 2009

Вы должны просто использовать библиотеку JSON2 для анализа данных json, так как использование eval небезопасно (использование eval приводит к большому количеству потенциальных возможностей использования сайта), это медленно (особенно в более новые jitting-движки) и, наконец (и, что более важно,) объект JSON, предоставляемый библиотекой JSON2, становится частью стандарта сценария ecma (например, javascript), что означает, что браузеры теперь реализуют синтаксический анализ (и строковое преобразование) json, что приводит к получению в значительно улучшенной производительности.

К счастью, если вы используете библиотеку JSON2, она обнаруживает существование собственной реализации объекта JSON и не переопределяет ее, поэтому простое ее произвольное использование обеспечит вам безопасную реализацию, которая волшебным образом станет быстрее по мере улучшения поддержки браузера.

...