Всем добра.
Есть юзерскрипт (некоторые переменные и шелуху, не очень информативную, я выбросил):
(function (window, undefined) { // [2] нормализуем window
var w;
if (typeof unsafeWindow != undefined) {
w = unsafeWindow;
} else {
w = window;
}
if (w.self != w.top) {
return;
}
function start() {
var read = getread();
checkResult(read);
}
function checkResult(last_read) {
setTimeout(function() {
if (last_read < getread()) {
} else if (last_read > getread()) {
} else {
checkResult(last_read);
}
}, 500);
}
function getread() {
var read_text = $('.read_select .chosen-single span').text();
var regex = /[+-]?\d+(\.\d+)?/g;
var floats = read_text.match(regex).map(function(v) {
return parseFloat(v).toFixed(8);
});
return floats[0];
}
function minimum_rate() {
}
function callnetwork() {
}
})(window);
Данный скрипт "парсит" онлайн чат одного сайта. Иногда на функции checkResult скрипт не может получить ответ от сайта и он выполняет третье условие и перезапускает функцию checkResult снова. И так может быть много раз. Иногда, после очередного десятка перезапуска срабатывает первое или второе условие и тогда все хорошо. Но порой, после многих десятков выполнений третьего условия скрипт "устает" и перестает выполнятся.
Как можно усовершенствовать скрипт, чтобы он не прерывался при некоторой задержки ответа от сайта?