Я работаю над интерфейсом с большим количеством JavaScript - все это небольшие автономные фрагменты кода, предназначенные для выполнения различных действий в интерфейсе.
Все фрагменты (или блоки функциональности)., если хотите) находятся внутри одной и той же области видимости;событие, готовое к DOM.Это сделано для того, чтобы различные фрагменты могли совместно использовать несколько глобальных переменных области действия.
Вот как это структурировано ...
$(function ()
{
var SCOPED_GLOBAL_1;
var SCOPED_GLOBAL_2;
// Etc.
// A snippet of code designed to enable X functionality
// Another snippet of code designed to enable Y functionality
// Etc.
});
Используя этот подход, я получаю страшный сценарий времени -всплывающее окно из-за большого количества выполняемого кода.
Internet Explorer 8 определяет время ожидания сценария на основе количества выполненных вызовов ... И большого количества вызововделают ... Много!
Я провел некоторое тестирование, и, насколько я могу судить, единственный способ избежать всплывающего окна - это использовать setTimeout и постепенно выполнять фрагменты кода.
IЯ пытался разделить код на несколько вызовов события DOM ready, но похоже, что Internet Explorer 8 интерпретирует эти вызовы так, как если бы они были одним вызовом.(Та же подпись при профилировании).
Код станет запутанным, если мне потребуется реализовать подход setTimeout.И обмен глобальными областями не будет легким.
У вас, ребята, есть шаблон, чтобы помочь мне?
Обновление
Как некоторые из вас предложили, оптимизация кода была бы способом справиться с этим.Я уверен, что в коде есть место для оптимизации, но, как я вижу;проблема заключается только в большей части кода, а не в том, как он работает.
Существует много предустановленного кода, который инициализирует различные компоненты пользовательского интерфейса.Именно этот код вызывает проблемы в Internet Explorer 8 ... из-за большого числа совершаемых вызовов. Не столько времени, сколько требуется для выполнения кода.
Код выполняетсяБыстро и хорошо во всех других браузерах, загрузка в среднем занимает полторы секунды (что быстро, по сравнению с тем, что происходит).Проблема заключается в том, что Internet Explorer 8 определяет сценарий как медленный по количеству выполняемых вызовов, тогда как все другие браузеры (и, по-видимому, IE 9) определяют тайм-аут ко времени, которое требуется для выполнения кода.