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

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

я зато верю. Здесь ключевые слова не "по ассинхронному мех-зму в формате json", а "большой объем данных ... обработать и представить в браузере". Нужно либо кардинально пересмотреть алгоритм обработки данных, либо и впрямь производить обработку сервером. Но даже это может не помочь, если, допустим, пытаться одним махом втиснуть в страницу таблицу на сто тыщ строк (зачем это делать - это уже другой вопрос :-) ).
...
Рейтинг: 0 / 0
24.03.2009, 09:18
    #35887204
DOSUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сценарий на данной странице замедляет работу IE
В общем выявил, что появление окошка в 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
24.03.2009, 09:33
    #35887235
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сценарий на данной странице замедляет работу IE
DOSUS,

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

Можете поставить 5000000 ограничение и его увидишь. Можете дописать инструкции в тело цикла кол-во пробегов по циклу уменьшится. (Жмете на прервать сценарий, смотрите на i).
...
Рейтинг: 0 / 0
24.03.2009, 09:51
    #35887281
DOSUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сценарий на данной странице замедляет работу IE
ShSerge
На цикле while(true)
Сообщение вываливается за меньшее количество итераций. Уж не знаю почему. Поэтому привел именно цикл for в кач-ве демонстрации
...
Рейтинг: 0 / 0
24.03.2009, 09:59
    #35887297
DOSUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сценарий на данной странице замедляет работу IE
Посмотрел, в других браузерах:
Mozilla - 125000000 итерация
K-Meleon - 15000000 итераций
IE - 3000000 итераций
...
Рейтинг: 0 / 0
24.03.2009, 10:05
    #35887316
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сценарий на данной странице замедляет работу IE
Ну и что? Разве плохо, что браузер соображает, что программа по всей видимости зациклилась? Проверил, есть такая беда:
Код: 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
24.03.2009, 10:11
    #35887337
DOSUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сценарий на данной странице замедляет работу IE
авторНу и что? Разве плохо, что браузер соображает, что программа по всей видимости зациклилась?
Не всегда, к сожалению, он правильно соображает. :). Для того и сей бубен в виде "конвеера"...
...
Рейтинг: 0 / 0
13.04.2009, 17:19
    #35928605
DOSUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сценарий на данной странице замедляет работу IE
Применил подход в боевых условиях - все зашибись, окно с предупреждением не вываливается, браузер не висит.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / сценарий на данной странице замедляет работу IE / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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