Скрипт нагружает память хрома
Как боротся? Есть цыкл:
var i = 0; function test() { if (i <= 5000) { test2(); setTimeout(test, 1000); } } function test2() { var obnov = document.getElementById("****").getElementsByTagName("**")[0].click(); var prov = document.getElementById("****"); if(prov.innerHTML != "") {i=5555; alert("ok");}else{obnov}; i++; } test(); С каждым цыклом пямять в хроме увеличивается, что нужно сделать? или что не так делаю? |
Не знаю что делать уже, пробывал и так:
delete window.obnov; delete window.prov; delete window.i; и просто obnov=null; prov=null; i=null; ничего не помогает, в диспетчере задач хрома видно как растет память Javascript(там есть такая вкладка) |
что делают эти функции?
|
первая функция это цыкл с интервалом в 1 сек и запуском второй функции, а во второй функции идет проверка на существования на странице елемента, если его нет значит продолжаем цыкл i++; и обновляем если он найден то останавливаем i=5555;
|
var i = 0; setTimeout(function tim(){ if (i <= 5000){ if(document.getElementById("****")) { var obnov = document.getElementById("****").getElementsByTagName("****")[0].click(); i=5555; alert("ok"); } else setTimeout(tim, 1000); } i++; }, 1000); только не совсем понятно: зачем его искать в цикле?? должно быть какое-то событие появления вызвать событие dispatchEvent(new Event("click")); |
в общем на странице есть фрейм и его можно обновлять, мне нужно что бы обновлялся фрейм до тех пор пока там не появится что то. Но насколько я понял при каждом обновление страница остается в кеше и потом она перестает отвечать так как не хватает оперативной памяти, как это исправить?
|
jonsinat2, в конец адреса добавляй get-параметр с рандомным значением.
К примеру: var img;//Это условная картинка setInterval(function(){ img.src=img.src.split('?').shift()+'?'+Math.random(); },2000) Изображений будет перезагружаться каждые 2 секунды игнорируя кеш. |
ну это я понял а можео как то совсем чистить кеш через js?
|
Часовой пояс GMT +3, время: 04:00. |