我正在寻找的最简单的例子是:
var messageLoader = $.post("api/user/messages", {api:data})
messageLoader.done(function(data){
//do something
});
这非常有效,但只有一次。如果我想更新数据,我必须重新定义一切。
我似乎找不到任何让我重新启动它的延迟对象的调用。即messageLoader.redo()
,理想情况下会重新执行 POST 请求,然后调用相同的“完成”处理程序,而无需我重新定义它。
我可以把它全部放在一个函数中,然后再次调用该函数,但这不是我想要的,因为我还想这样做:
var messageLoader = $.post("api/user/messages", {api:data})
var friendRequestLoader = $.post("api/user/friendrequests", {api:data})
$.when(messagesLoader, friendRequestLoader)
.done(function (messages, friendRequests) {
// update display of messages and friend requests
// attach Handlers
});
$("#updateMessages").click(function(){
messageLoader.redo() // This doesn't exist
})
这个想法是单击$("#updateMessages")
将重新执行该请求,然后$.when()
处理程序将使用新messageLoader
数据和原始friendRequestLoader
数据。
我在文档中查看了类似的内容,但没有找到任何东西。也许这里有人知道它是否存在,或者知道完成同样事情的方法。