Я не понимаю данные, возвращаемые из jQuery AJAX-запросов, если ответ задерживается. Я бегу запрос каждую секунду, и если ответ задерживается, скажем, на 3 секунды, метод успеха AJAX называетсяjQuery Ajax - отложенный ответ ведет себя странно
- в Chrome Linux: четыре ответа на один раз каждые 3 или 4 секунды
- в Firefox Linux: один ответ каждые 3 или 4 секунды
fiddle См:
HTML:
<div id="result"></div>
JS:
$(document).ready(function(){
updateData();
function updateData(){
doRequest();
setTimeout(updateData, 1000);
}
function doRequest(){
$.ajax({
url: '/echo/js/',
type : "GET",
data: {
js: "",
delay: 3
},
success: function(retVal){
$('#result').append(new Date() + '<br>');
},
error: function(error){
alert("Error in network (" + error.status + ")");
}
});
}
})
Могу ли я заставить JQuery запустить метод успеха для каждого ответа, а не в какой-либо группе, а также заставить его запустить запрос каждую секунду? Благодаря!
Почему 'ready()' обработчик находится внутри 'doRequest()' ..? –
Вы уверены, что успешные обратные вызовы опущены.? Кстати, вы действительно хотите отправлять запросы каждые 100 мс (это будет удар производительности, ваш скрипт замедляет мой браузер) или вы хотите отправить следующий запрос, как только предыдущий закончен.? Я бы предложил что-то вроде [this] (http://jsfiddle.net/9bcxh3hd/1/). –
@ T J: готовый фиксированный, извините, неправильное положение. Я запускаю скрипт каждую секунду, а не 100 мс, и да, я должен это сделать. Это обновление онлайн-диаграммы данных. – Ajax