2010-06-30 177 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/

希望这有助于。