我正在寻找的最简单的例子是:
var messageLoader = $.post("api/user/messages", {api:data})
messageLoader.done(function(data){
//do something
});
Run Code Online (Sandbox Code Playgroud)
这种方法非常出色,但只有一次.如果我想更新数据,我必须重新定义所有内容.
我似乎无法找到任何延迟对象的调用,让我重新启动它.即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
})
Run Code Online (Sandbox Code Playgroud)
我们的想法是点击$("#updateMessages")
会重新执行该请求,然后$.when()
处理程序将使用新messageLoader
数据和原始friendRequestLoader
数据.
我已经查看了类似这样的文档,但没有找到任何东西.也许这里有人知道它是否存在,或者是一种完成同样事情的方法.