我在我們的內部系統中有一個報告,可以返回從1天數據到全年的任何地方。因此,報告可能需要0.5秒或超過45秒才能生成所有內容。在發送下一個請求之前取消ajax請求? (jQuery)
報告,可以修改一堆過濾器,所有這些修改時,火了一個Ajax請求非常簡單:
var ax = $.ajax({
type: "GET",
url: "/blah",
data: values,
success: function(data) { .. }
});
現在,當我們精彩的用戶指出:「哦,等等,我想問題就來了這是從2月份開始,而不是1月份!「。但是,自從1月份以來,一個請求已經發生了很多數據!因此,用戶將日期選項切換到二月份,我可以看到Javascript控制檯發出第二個請求。現在我們有兩個去,這是一個比賽!
/報告/?START_DATE =一月(仍在載入中...)
/報告/?START_DATE =月(嘿嘿,現在我在這裏呢!)
然後通常較小的一個將加載更快,但隨後另一個負載和它過寫一個他們已經有了..嗯:)
我使用ax.abort()
放在ax
變量提及的聲明後,已經嘗試編輯here但它似乎並沒有工作。
所以現在我想知道,我錯過了什麼?我只想在用戶更改某些選項時立即終止當前請求(客戶端,我知道我無法在服務器端執行任何操作),因此我沒有同時發送2個或更多請求。設置async: false
不是一個選項,因爲它只是鎖定用戶。
在此先感謝您的幫助。
看起來很容易使用,謝謝。會試試這個 – Bartek 2009-11-28 00:33:19
這個成果很好。感謝您的參考 – Bartek 2009-11-28 16:02:40