我有一个html页面,显示一些基本的帐户信息,并开始运行jQuery AJAX请求以检索更详细的数据。当Ajax请求正在进行时,用户可以单击具有onclick
事件的按钮以使用location.assign
导航到新页面。有没有办法让Internet Explorer不要等到AJAX请求完成之后才能进行链接?
不幸的是,如果在ajax请求完成之前单击该按钮,则在ajax请求完成之前不会发生任何事情。这是一个活的服务器问题。我希望用户能够立即离开。 FF和Chrome似乎表现更好,但由于这是企业内部网应用程序,因此它们不是真正的选择。
下面的代码是类似问题的网页:
- 使用纯
anchor
,而不是一个:<html> <head> <script src="/js/jquery-1.3.2.min.js" type="text/javascript"> </script> <script type="text/javascript"> <!-- $(function() { jQuery.ajax({ type: 'GET', url: '/long-running-partial-html-ajax-endpoint', success: function (result) { $('#detail').html(result); }); }, error: function (xmlHttpRequest, textStatus, errorThrown) { $('#detail').html('Failed to load additional information:<br />' + textStatus + '<br />' + errorThrown); } }); }); //--> </script> </head> <body> <h2>Account Information</h2> <div>Some basic details here</div> <div><button onclick="location.assign("/somewhere-else")" type="button">Go somewhere else now</button></div> <div id="detail"> <img src="/ajax-loading-animation.gif" alt="Loading ..." /> Loading ... </div> </body> </html>
事情我已经在调试器(不带电)已经尝试过脚本按钮
- 使用
xhr.abort()
之前location.assign
- 把
alert
s围绕location.assign
安慰自己,代码执行时预计
观察:
- IE停止只要点击按钮时的动画GIF。
- FF /铬必须自动中止Ajax请求的jQuery的AJAX
error
事件被触发
有没有人碰到这个问题来了?你有一个解决方案,将使导航更加快速响应?
您有试过锚与href(而不是'location.assign')? – 2010-10-12 14:07:21
感谢您的关注Pekka。我的原始帖子中提到了一个简单的锚,这是我尝试的第一件事。 – WooWaaBob 2010-10-13 08:27:32
我现在已经尝试了xhr.abort(),但是没有任何效果,除了返回的HTML没有呈现:即成功函数不会执行,这是我想的一个小胜。 – WooWaaBob 2010-10-20 10:43:12