2011-03-25 113 views
0

如果我收到的響應是針對我發送的特定請求,是否有某種方法可以在ajax和/或jquery中進行驗證?根據請求驗證ajax響應

爲了更清楚。我有一個搜索頁面分爲兩部分,第一部分是搜索條件部分,第二部分是匹配結果。默認情況下,獲取前20條記錄。結果部分通過ajax請求定期更新。用戶可以選擇過濾提供的結果。這也通過ajax發生。

這兩個請求的URL都是相同的。唯一的區別是當用戶選擇過濾結果時,URL附加的過濾條件。

由於用戶過濾器具有比背景刷新更高的優先級,因此當它檢測到用戶請求特定的文件管理器時,我需要中止後臺刷新。是否有一些方法檢查ajax響應並驗證此響應是否與後臺請求或用戶特定請求相對應?

我已盡力解釋查詢,但請告訴我是否需要更多信息。

回答

0

我想我明白你要做什麼。我的理解是,頁面的一部分會定期自動刷新,但是如果用戶明確指出了一個過濾器,則希望這些刷新停止。正確?

我不知道你的ajax響應是什麼樣的,所以這必須是抽象的,但我認爲你的ajax響應是HTML或JSON。

當您爲用戶指定的過濾器請求做出響應時,只需添加某種標誌來指示發生了這種情況。

HTML:將它添加到這可能是添加到頁面某處W上的代碼/ innerhtml

<input type="hidden" id="user-defined-filter" value=1 /> 

JSON:這個添加到響應JSON對象。我稱之爲ajaxResponse1

{user-defined-filter: 1} 

然後把有條件的自動刷新之前如

if (!$("user-defined-filter").val()) {//auto-refresh stuff 

OR

if (!ajaxResponse1.user-defined-filter) {//auto-refresh stuff 
0

也許你可以節省$。阿賈克斯()的返回對象的背景請求,並根據用戶請求中止:

// global 
var bgAjax; 

// In you treatment og background 
bgAjax = $.ajax(...); 

// Abort 
bgAjax.abort();