powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / сценарий на данной странице замедляет работу IE
13 сообщений из 13, страница 1 из 1
сценарий на данной странице замедляет работу IE
    #35882107
DOSUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема:
Получаю большой объем данных по ассинхронному мех-зму в формате json.
Необходимо их обработать и представить в браузере.
Вываливается окно:
"сценарий на данной странице замедляет работу IE. При продолжении выполнения сценария компьютер может не реагировать. Прервать сценарий? да нет"

Можно ли обойти эту неприятность? Есть какие-нибудь рецепты?
...
Рейтинг: 0 / 0
сценарий на данной странице замедляет работу IE
    #35882399
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обработать на сервере и вернуть готовый результат.
...
Рейтинг: 0 / 0
сценарий на данной странице замедляет работу IE
    #35882458
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ерунда это. Не верю. У меня так не получается.
...
Рейтинг: 0 / 0
сценарий на данной странице замедляет работу IE
    #35882560
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Угу. Это что-то с ответом. Возможно, какие-то символы, может, неправильно закрыта структура. Возможно, поможет код сервера (но это не тут) и код обработки (вряд ли поможет, но все возможно).
...
Рейтинг: 0 / 0
сценарий на данной странице замедляет работу IE
    #35883115
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge,

я зато верю. Здесь ключевые слова не "по ассинхронному мех-зму в формате json", а "большой объем данных ... обработать и представить в браузере". Нужно либо кардинально пересмотреть алгоритм обработки данных, либо и впрямь производить обработку сервером. Но даже это может не помочь, если, допустим, пытаться одним махом втиснуть в страницу таблицу на сто тыщ строк (зачем это делать - это уже другой вопрос :-) ).
...
Рейтинг: 0 / 0
сценарий на данной странице замедляет работу IE
    #35887204
DOSUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем выявил, что появление окошка в IE зависит от количества операций.
На моей машине что-то порядка 3000000.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<body>
<span id=test></span>
</body>

<script type="text/javascript">
setInterval("document.getElementById('test').innerHTML=i", 1 );
for(var i= 0 ; i>- 1 ;i++){
};
</script>

Т.о. чтобы избежать его появления необходимо обнулить счетчик. Думаю делать это через setTimeout и использование глобальных переменных.
Код приобретает вид:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<body>
<span id=test></span>
</body>

<script type="text/javascript">
setInterval("document.getElementById('test').innerHTML=i", 1 );
i= 0 ;
function loop(){
for(var j= 0 ;j< 100000 ;j++){
i++;
};
setTimeout("loop()", 1 );
};
loop();
</script>

Окно не вываливается. В боевых условиях, считаю разумным обнулять счетчик после парсинга json-а, т.к. количество операций может быть существенным. Так же думаю разумно "почастям" ввыводить данные в браузер.

Т.о. организация "конвеера" в javascript поможет избежать "окошка". Осталось применить на пракике, должно прокатить. Всем спасибо.
...
Рейтинг: 0 / 0
сценарий на данной странице замедляет работу IE
    #35887235
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DOSUS,

А, теперь понятно. Зациклилась твоя хрень.
Код: plaintext
1.
2.
for(var i= 0 ; i>- 1 ;i++){
};
Проще while(true); написать.
...
Рейтинг: 0 / 0
сценарий на данной странице замедляет работу IE
    #35887274
DOSUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge
Это тестовый пример на определение количества операций после которых вываливается сообщение.

Можете поставить 5000000 ограничение и его увидишь. Можете дописать инструкции в тело цикла кол-во пробегов по циклу уменьшится. (Жмете на прервать сценарий, смотрите на i).
...
Рейтинг: 0 / 0
сценарий на данной странице замедляет работу IE
    #35887281
DOSUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge
На цикле while(true)
Сообщение вываливается за меньшее количество итераций. Уж не знаю почему. Поэтому привел именно цикл for в кач-ве демонстрации
...
Рейтинг: 0 / 0
сценарий на данной странице замедляет работу IE
    #35887297
DOSUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрел, в других браузерах:
Mozilla - 125000000 итерация
K-Meleon - 15000000 итераций
IE - 3000000 итераций
...
Рейтинг: 0 / 0
сценарий на данной странице замедляет работу IE
    #35887316
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и что? Разве плохо, что браузер соображает, что программа по всей видимости зациклилась? Проверил, есть такая беда:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<html>
<script>
window.onload=function(){
var b=document.body;
for(var i= 0 ;i< 2500000 ;i++) b.innerHTML+=" b";
}
</script>
<body>
</body>
</html>
...
Рейтинг: 0 / 0
сценарий на данной странице замедляет работу IE
    #35887337
DOSUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНу и что? Разве плохо, что браузер соображает, что программа по всей видимости зациклилась?
Не всегда, к сожалению, он правильно соображает. :). Для того и сей бубен в виде "конвеера"...
...
Рейтинг: 0 / 0
сценарий на данной странице замедляет работу IE
    #35928605
DOSUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Применил подход в боевых условиях - все зашибись, окно с предупреждением не вываливается, браузер не висит.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / сценарий на данной странице замедляет работу IE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]