2010-07-01 3 views
15

Используя этот код:Как вам отменить/отменить запрос, используя библиотеку прототипов js?

var pendingRequest = new Ajax.Request(myUrl, { 
       method: 'post', 
       postBody: soapMsg, 
       contentType: "text/xml", 
       onSuccess: function(transport) { 
        doSomething(transport); 
       }, 
       onFailure: function(t) { 
        OnAjaxFailure(t); 
       }, 
       onException: function(req,exception) { 
        OnAjaxException(req, exception);   
       } 

      }); 

Как я могу отменить запрос и отбрасывать данные, или в противном случае, как я мог бы идентифицировать запрос (используя имя/справ/все) в моем OnSuccess метод, так что я может указать, какой запрос завершается?

Я думал делать в Array.push (pendingRequest) следить за незавершенные запросы

Я хочу, чтобы позволить пользователю прервать запрос, изменить значение входного и повторите попытку.

Иногда первоначальный запрос заканчивается после нового запроса, и я заменяю «правильные» данные на «старые» данные. (Результаты поиска возвращают 50000 записей на первый запрос и 5 в секунду, например)

Спасибо,

ответ

20

Вы можете использовать XHR-х abort.

XHR-объект хранится в pendingRequest.transport, поэтому использование

pendingRequest.transport.abort() 

бы отменить запрос.

+0

отлично, спасибо –

2

Рекомендовать эту статью: http://blog.pothoven.net/2007/12/aborting-ajax-requests-for-prototypejs.html Работает для меня.

+1

thats oooooooooooooold link – Nasaralla

+0

Прототип сам по себе. ссылка не работает? или метод, указанный в ссылке, не работает? – llamerr

+0

Ссылка работает. Я использовал этот метод год назад, и он работал хорошо. Надеюсь, это так. – Mat

Смежные вопросы