1

次と前の写真の間を移動する機能を持つギャラリーをやっています。

次と前のトグルでは、大量の非同期 ajax 呼び出しが行われるため、写真間をすばやく移動できます。

ここに私の問題があります。私が写真#1にいると仮定して、実行します:次、前、次、前。

ajax 呼び出しは非同期であるため、写真 2 で取得された情報は、写真 1 の情報と混ざり合って終了します。

したがって、次と前の既存の ajax 呼び出しを中止してから、ajax 呼び出しを行う必要があります。

私は次の方法を試しました:

var xhr=false;

function(){

if(xhr){   
xhr.abort();
}

xhr=$.ajax({

});

}

私のコードで次と前の間を急速に移動すると、一部のリクエストが中止されないようです。

4

1 に答える 1

2

ajax() 関数は promise を返すため、done() を使用して次の ajax 呼び出しをトリガーできます。前の ajax 呼び出しが失敗した場合、done() は呼び出されません。

参照: http://api.jquery.com/category/deferred-object/

于 2012-09-20T17:43:35.757 に答える