2012-02-14 9 views
0

ユーザーが検索用語を入力すると、検索結果が更新されます。新しいAJAXコールが作成されたときに、以前のAJAXコールを中止しますか?

2つのajaxコールが発生すると、最後の1つがdata_responseに戻されることがあります。私はこれが起こらないことを確認する必要があります。

これは私のコードです:

function filterCities(search) { 
    $.ajax({type:'GET',url:'/ventas/theme/citiesContainer.php',data: "search=" + search, 
    success:function(data_response){ 
     results.innerHTML = data_response; 
     }}); 
    } 

私は新しいものを作るとき、私は同じ要求の以前のインスタンスをCANCELLはどうすればよいですか?

答えて

2

これは解決策であります簡単なカウンターで

<script> 
var counter = 0; 
function filterCities(search,c) { 
    $.ajax({type:'GET',url:'/results.php',data: "search=" + search, 
    success:function(data_response){ 
     if(c == counter) { // Only update if it's data_response from last call 
      results.innerHTML = data_response; 
      } 
     }}); 
    } 
</script> 

<input type="text" onkeyup="counter++; filterCities(this.value,counter);"> 
2

URLにカウンタを送信してカウンタを返信し、最新の反復でない場合は結果を無視することができます。 UDPパケットのシーケンス番号によく似ています。

関連する問題