Триггеры искусственного тайм-аута с JavaScript / JQuery и AJAX - PullRequest
1 голос
/ 12 октября 2009

В jQuery.ajax у нас есть благословение: установка времени ожидания в миллисекундах и обратный вызов Error для его обработки.

Однако некоторые люди просто на медленной связи, с небольшим количеством терпения. То, что я хочу сделать, это просто отобразить сообщение о том, что «это занимает больше времени, чем обычно».

Аргумент Timeout в jQuery не удовлетворит этого, и setTimeout () делает то же самое. Как это можно сделать с помощью простой проверки времени?

1 Ответ

0 голосов
/ 12 октября 2009

ОК, это было достаточно просто.

Все, что мне нужно было сделать, это настроить независимый тайм-аут с функцией внутри для отображения любого сообщения, которое мне нужно.

Вы по-прежнему можете использовать функцию обратного вызова по тайм-ауту / ошибке в течение очень продолжительных периодов времени.

var timeout = true;

timeout = setTimeout(function() {
    if (timeout) {
        $("#zendesk-dropbox-error").html("Contacting the Helpdesk is taking longer than usual, try submitting manually?");
    }
}, 9000);


// Call for a JSON return from the PHP script
$.ajax({ type: 'GET', url: http://www.example.com, dataType: 'json', cache: false, data: ({ a: 'b' }), timeout: 60000, 
    success: function(zendesk){
        timeout = false;
        // Code
    },error: function(objAJAXRequest, strError) {
        // Code
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...