use*_*245 5 javascript ajax jquery readystate onreadystatechange
如何调用我的函数:myFunc1在jquery浏览器完全发送 ajax 请求之后?
我想在发送jquery ajax 后运行回调函数。我不想这样做,complete或者success因为我不想等待请求完成。我想在从浏览器发送 ajax 请求后立即触发它。
这是我需要的用例:
我想在发出 ajax 请求后运行一个函数。我的原始代码是这样的:
$.ajax({url: 'x.html'});
myFunc1();
Run Code Online (Sandbox Code Playgroud)
在 myFunc1() 更改浏览器位置的情况下,浏览器将取消挂起的 ajax 请求。
我目前的解决方案是这样做:
$.ajax({url: 'x.html', complete: myFunc1});
Run Code Online (Sandbox Code Playgroud)
这确保myFunc1在 ajax 完成之前不会调用它。尽管此解决方案有效,但效率低下,因为myFunc1在请求完成之前不会运行。由于我不在乎ajax请求返回什么,无论失败还是成功,我不需要等待它完成运行该myFunc1函数。
这就是我在 AJAX 调用之后充分运行我的回调函数所做的事情,这样浏览器就不会取消它,而不必等待服务器完成请求:
var cb = function(){
window.document.location.href="http://google.com";
}
$.ajax({
url: 'x.html',
complete: cb,
timeout: 100
});
Run Code Online (Sandbox Code Playgroud)
这里的超时确保如果我的服务器没有响应100ms,则callback执行。100ms浏览器也有足够的时间发送请求。
我尝试了状态代码,最终没有使用它们。我发现它们跨浏览器不可靠并且 JSONP 请求丢失。
| 归档时间: |
|
| 查看次数: |
6794 次 |
| 最近记录: |