我在特定页面上发送ajax请求。然后我点击另一个链接。并且没有来自ajax请求的响应。有任何方法可以在点击任何其他链接时不破坏我的ajax请求。
答案 0 :(得分:0)
如果用户离开页面,那么你无能为力。您可以尝试阻止他们离开,或在您的页面上显示重叠并阻止用户点击显示页面上的链接(至少在您的ajax响应到来之前)。确保他们理解在操作完成之前离开页面可能会导致问题。
答案 1 :(得分:0)
如果我理解你的问题,听起来好像你正在解雇ajax请求,但是然后点击页面上的其他链接,那么ajax请求永远不会完成?
如果是这种情况,您可以将函数绑定到.preventDefault()
的所有链接,然后当AJAX请求完成时,您可以取消绑定该函数。
有些事情:
function makeAJAXRequest(){
$('a').click(function(){});
//Do AJAX Request Here
}
function AJAXCallbackk(){
$('a').unbind('click');
//Parse AJAX here
}
您还可以将函数绑定到onBeforeUnload
,这会创建window.confirm()
,这可能会提示用户询问他们是否确定要离开页面。如果输入框具有未提交的文本,许多网站都会执行此操作。 Facebook就是一个明显的例子。