цикл слишком медленный для IE7 / 8 - PullRequest
1 голос
/ 23 февраля 2011

У меня есть выполнение цикла, которое должно выполняться во всех браузерах.

в chrome / ff и т. Д. Выполнение выполняется быстро и нормально.в IE он медленный и в итоге выдает подсказку, в которой говорится, что скрипт работает медленно (бесполезно).

Есть идеи, как обойти что-то подобное?В основном мне просто нужно избавиться от приглашения IE на 7/8

** edit **

Вот код:

if(this.handicap()) {
    while(this.hasGraphChanged()) {
        this.gravity(this.separate());
    }
}

Это ОЧЕНЬ большой проектпоэтому вместо перечисления всего кода я пойду за быстрым объяснением.

this.handicap: возвращает true, если в браузере IE7 / 8 this.hasChanged: возвращает true / false в зависимости от наличияизменить ПОСЛЕ рисования обновить this.gravity: обрабатывает алгоритм рисования на основе p1 (массив)

Ответы [ 2 ]

2 голосов
/ 23 февраля 2011

Вы можете использовать некоторую асинхронную технику итерации вместо циклов.Смотрите Асинхронные итерационные шаблоны Педро Тейшейры для хорошего представления.Он использует Node.js, но вы можете использовать те же шаблоны в браузере.

0 голосов
/ 23 февраля 2011

Что именно делает цикл? Является ли количество итераций детерминированным? Если из-за этого зависает браузер, вы можете рассмотреть рабочие потоки javascript https://developer.mozilla.org/En/Using_web_workers (хотя я не уверен, какие браузеры в настоящее время поддерживают эту функцию).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...