2010-06-30 243 views
4

我有一個網頁,我將一個註釋與存儲在我的數據庫中的頁面關聯起來,以便每當下次加載該頁面時,都可以看到該通知,直到它被刪除其他一些用戶也有權這樣做。但是,假設我在通過AJAX加載某些內容後將某個註釋與該頁面相關聯。我只想在下次在網頁上加載特定內容之後才顯示該筆記。我想跟蹤AJAX請求並將註釋附加到它?我想通過放在任何網頁底部的簡單JavaScript代碼來完成這一切。如何做呢?在頁面上跟蹤Ajax請求

+0

恕我直言,它不能完成。 – RageZ 2010-06-30 09:11:29

+1

我不明白。 – helle 2010-06-30 09:30:35

+1

能否請你解釋一下你需要什麼。 – 2010-06-30 10:45:07

回答

0

你需要爲所有的ajax調用編寫一個包裝器來檢查結果,看看它是否應該添加一個備註。這裏有一個例子,假設你使用jQuery來處理Ajax請求:

function ajaxWrapper(settings){ 

    var old_callback = settings.complete; 

    settings.complete = function(request, status){ 
     if(status == "200"){ 
      // check the request.responseText and add your note if appropriate 
     } 

     if(old_callback){ 
      old_callback(request, status); 
     } 
    } 

    jQuery.ajax(settings); 
} 

然後,而不是調用jQuery.ajax()的直接調用ajaxWrapper()代替。

另一種選擇是將註釋包含在你的ajax響應中。

+0

這需要更改每個Ajax調用以使用包裝器。 jquery的ajax包裝器已經提供了這個功能,所以你可以通知每一個請求,正如Uttam – 2010-09-22 21:43:39

+0

所指出的那樣,但是原來的問題沒有說明他在使用jQuery。這是可以用於任何AJAX庫的一般迴應。 但是,如果他使用jQuery,那麼Uttam的答案將是更好的選擇。 – 2010-10-05 23:05:05

3

jQuery ajax提供了在ajax請求之前,之中和之後觸發事件的方法。請檢查api here以獲取完整列表。

以下是在完成每個ajax請求後調用的幾個方法。

jQuery.ajaxComplete() - 註冊一個處理程序,以便在Ajax請求完成時調用。

jQuery.ajaxSuccess() - 當一個Ajax請求成功

完成這些功能允許傳遞的回調函數的事件發生之後,觸發顯示的消息。在回調函數中檢查你想要的內容是否被加載,然後顯示註釋。對於上述方法

示例代碼可以在這裏找到:

http://api.jquery.com/ajaxComplete/

http://api.jquery.com/category/ajax/

希望這有助於。