私が探しているものの最も単純な例はこれです:リユースjQuery.post()/ jQuery.Deferred()オブジェクト
var messageLoader = $.post("api/user/messages", {api:data})
messageLoader.done(function(data){
//do something
});
これは一度だけ見事に動作しますが、。データを更新したい場合は、すべてを再定義する必要があります。
私はそれを再開させてくれる遅延オブジェクトの呼び出しを見つけることができないようです。すなわちmessageLoader.redo()
、理想的にはPOSTリクエストを再実行し、その後、私がそれを再定義する必要なく、同じ "done"ハンドラを呼び出します。
私は、関数でそれをすべて入れて、もう一度その関数を呼び出しますが、私はさらにこれをしたいと思うので、それは、私が探しているものではないのですができます
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
データを使用します。
私はこのようなドキュメントを見てきましたが、何も見つかりませんでした。多分、ここにいる人は、それが存在するかどうか、あるいは同じことを達成する方法を知っているでしょう。
目的のアクションを実行する関数を作成して、もう一度呼び出すことはできますか? –