如果我使用Ajax发送请求并且这个请求需要很长时间......如果我想发送花药请求我该怎么办?
当前的行为第二个请求(我做了)等待第一个请求得到响应。
NOTE :我想在整个应用程序上执行此行为(任何新请求立即执行,而不是等待旧请求首先完成)
我的应用程序使用(Ajax + PHP + jQuery + Symfony)
假设第一个请求需要很长时间:
$.ajax
({
type: "GET",
url: url1,
success: function (html)
{
// do some thing
}
});
在任何时候我都希望执行此请求并终止第一个请求。
$.ajax
({
type: "POST",
url: url,
success: function (html)
{
// do some thing else
}
});
var xhrReq;
xhrReq = $.ajax(...);
// then if you want to stop the rqest and exit use :
xhrReq.abort();
这是一个手动过程,但您可以添加一个全局 xhr 对象并针对每个请求进行测试。如果就绪状态为“正在加载”,则中止它:
var xhr;
var loadUrl = function(url) {
if ( xhr && xhr.readyState > 0 && xhr.readyState < 4 ) {
// there is a request in the pipe, abort
xhr.abort();
}
xhr = $.get(url, function() {
console.log('success', this);
});
};
loadUrl('/ajax/');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)