Скрипт нагружает память хрома
Как боротся? Есть цыкл:
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, время: 01:37. |