我有一個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