управление потоком с помощью jQuery и ajax: определить, какой ответ принадлежит какому вызову - PullRequest
1 голос
/ 14 декабря 2011

Я хочу определить, какой ответ принадлежит какому (асинхронному) вызову. В моем клиентском веб-приложении у меня есть список элементов. Каждый раз, когда пользователь переходит к элементу, приложение выполняет ajax-вызов, чтобы проверить, обновлен ли элемент. Если пользователь перемещается очень быстро, существует несколько вызовов (с одной и той же функцией обратного вызова), ожидающих ответа. Есть ли способ в jQuery, чтобы определить, какой ответ принадлежит к какому вызову? Или я должен сам это реализовать?

Ответы [ 2 ]

0 голосов
/ 14 декабря 2011

Итак, я только что нашел плагин, который, кажется, решает мою проблему:

http://docs.jquery.com/AjaxQueue (но сегодня нет ссылки на скачивание)

Я нашел способ определить, какой ответ принадлежит какому вызову:

        var xhr = $.ajax({
            type: 'GET',
            url: 'service.php',
            dataType: 'json',                
            data: data,
            async: true,
            timeout: 1000,
            success: function(xhr)
            {
                alert('success with callID: ' + xhr.callID);
            },
            error: function(xhr)
            {
                alert('error with callID: ' + xhr.callID);
            },
            complete: function(xhr)
            {
                alert('completed callID: ' + xhr.callID);
            }
        });
        xhr.callID = ++seqNo;
        xhr.itemID = ID;

С этой информацией должно быть возможно построить мою собственную очередь.

0 голосов
/ 14 декабря 2011

При вызове $ .ajax укажите метод обратного вызова и callbackData. Укажите itemId как callbackData. Когда обратный вызов будет выполнен, вы вернете itemId, чтобы вы могли использовать этот ItemId для обновления данных, связанных с этим конкретным элементом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...