Ajax 呼び出しでいくつかの問題に直面しています。私は自分のサイトのパフォーマンスを改善するために取り組んでいます。そのためにやりたいことの 1 つは、ajax を一度だけ起動することです。
マイシナリオの一つ。国とゾーンの 2 つの選択ドロップダウンがあります。国が変更されると、選択した国のゾーンを取得するために ajax を起動する .change が起動されます。たとえば、国インドを選択すると、Ajax が起動し、アイスランドに変更すると、ajax が起動します。国をインドに戻しても、サーバーからデータを取得しているため、Ajax を起動する必要はありません。
コード
$("#select_list_id").change(function(){
var url = 'ajax.php?val=' + this.value;
$.ajax({
url: url,
success: function(json){
for(i=0; i<jsonData.length;i++) {
$("#select_list_2_id").append(new Option(jsonData[i].title,jsonData[i].id));
}
}
});
})
私のアプローチは、返されるjsonを保存し、変更時にcountryIDを比較し、値が既に存在する場合はjsonを返し、そうでない場合はAjaxをヒットすることです。しかし、私のプロジェクトには約 100 件の ajax 呼び出しがあり、このプロセスにはかなりの時間がかかる場合があります。
このコードを一般化する方法について、誰かが私を助けることができれば。
これらすべてとは別に、検索中にjquery onceプラグインでもこれを実行できることがわかりました。もしそうなら、誰かがこれについて助けてください。
更新 - ありがとうございます。同じものに使用されますか?