Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.01.2018, 13:08
Интересующийся
Отправить личное сообщение для antonhauff Посмотреть профиль Найти все сообщения от antonhauff
 
Регистрация: 16.10.2017
Сообщений: 23

Try...Cath и The server responded with a status of 429 ()
Всем добра. Не могу отпимизировать код.
Есть скрипт, который пишет в чат какие-то рандонмые сообщения. Скрипт запускается на стороннем сайте. Иногда, со стороны сайта есть ошибки, например такие: "Failed to load resource: the server responded with a status of 429 ()" либо какой-нибудь другую (например иногда это может быть 500(), либо 502()).
В таком случае, скрипт "зависает" на бесконечном выполнении третьего блока функции checkResult() так как сообщение не отравилось.
На данный момент лечение появляющийся ошибки лечится перезагрузкой страницы. Но это не комильфо

Есть ли возможность как-то отлавливать ошибки и перезапускать скрипт? Если это можно делать через try...cath то вопрос будет довольно глупый - что мне записывать в try, и что прописать в cath?

(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()) {
        //1-ый блок
        } else if (last_read > getread()) {
        //2-ый блок
        } else {
        //3-ый блок
        checkResult(last_read);
        }
    }, 500);
}

//тут алгоритм конфигурирует сообщение в чат
function getread() {
}

setInterval(start, 500);
})(window);
Ответить с цитированием
  #2 (permalink)  
Старый 20.01.2018, 16:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Что есть getread()?
Ответить с цитированием
  #3 (permalink)  
Старый 20.01.2018, 18:10
Интересующийся
Отправить личное сообщение для antonhauff Посмотреть профиль Найти все сообщения от antonhauff
 
Регистрация: 16.10.2017
Сообщений: 23

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];
}
Ответить с цитированием
  #4 (permalink)  
Старый 20.01.2018, 18:11
Интересующийся
Отправить личное сообщение для antonhauff Посмотреть профиль Найти все сообщения от antonhauff
 
Регистрация: 16.10.2017
Сообщений: 23

Алгоритм, который "парсит" чат для "отлова" изменений.
Ответить с цитированием
  #5 (permalink)  
Старый 20.01.2018, 18:12
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ищите в своем алгоритме что конкретно выполняет запрос, ему и анализировать статусы ответа. Возврат сервером статуса 500 не является исключением.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск