2011-11-12 1 views
1

OKをキューイング防ぐために.post $をキャンセルし、だから私はいくつかのローカルストレージとAJAXを使用して全体のWebアプリケーションを作成していjQueryの - など

私が午前問題は、時々私はダブルクリック、または背面のタブをクリックし、すぐに$ .post呼び出しを呼び出します。

問題は、コールバックが発生したときに呼び出され、前回の呼び出しが戻ってくるまで、コールバックされ、互いに上書きされ続けます。

明らかに問題です。私がする必要があるのは、現在のPOST呼び出しをキャンセルし、最後のコールバックを取得することだけです。

私が試してみました:

// Make Call: 

if(call != undefined){ 
    call.abort(); 
} 
var call = $.post(url,{do:'stuff'},function(response){ 
    // callback stuff: 
},'json'); 

は、可能な場合に関係なく、私はむしろアヤックスより.POSTを使用して、未定義を言い続け。

ご協力いただきありがとうございます。

+0

'stuff'のコードに入力ミスがありますか? – mjwills

+0

修正済み、ありがとう –

答えて

1

クリックでクリックイベントをバインド解除するだけで、コールバックで再度バインドします。

1

キャンセルすると、保留中のすべてのXHRが検出されません。カウンタを増分してバックエンドに渡して、古い応答が新しい応答を破棄しないようにします。あなたのバックエンドに応答のカウンタ値を含めるだけで、あなたのコールバックは上書きする前にそれをローカルカウンタと比較できます。