Ajax を介してバックグラウンドでデータを送受信する場合、同期および非同期の問題が頻繁に発生します。この記事では、Ajax の同期と非同期の問題の簡単な分析を紹介します。必要な友人は参考にしてください。Ajax を介してバックグラウンドでデータを送受信するとき、同期と非同期の問題がよく発生します。 Ajax はデフォルトで非同期でロードされますが、場合によっては同期または同期効果が必要になるため、解決策は 2 つあります。
オプション 1: 特定のメソッドをコールバック関数に入れて実行します。つまり、バックグラウンドから正常に戻るまで待ってから実行します。 例:
$.getJSON("/data-access/sens-config/IPandPortSel",{},function(resp){ if(resp.code==0){ $.each(resp.data,function(i,obj){ option_net_type += addOption(obj); }); $("#edit-addr_id").append(option_net_type); addr_idOld = $('#edit-addr_id').val(addr_id); } });
if(resp.code==0){} の外側に配置された場合、赤い部分はデータが正常に返された後に実行する必要があります ((ただし $.getJSON(); の後に配置されます)。データがバックグラウンドから返される前に、コードの赤い部分が実行されています
方法 2: 標準の Ajax 送信メソッドを使用します 注: このメソッドは部分的な同期送信方法のみです。他の送信に影響します。これは、より安全で推奨される方法です。 この方法は、他の送信に影響を与えるため、お勧めできません。他の ajax 送信も影響を受けます 上記は皆さんのためにまとめたものです。今後皆さんのお役に立てれば幸いです。位置の詳細な説明: IE6 での修正された問題。 CSS スタイルの詳細な説明。!重要、*、_ 記号 以上がAjax 同期と非同期の問題に対する簡単な分析と解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
$.ajax({
type : "post",
url : "/data-access/manufacturer/deleteBranch",
data : data,
async : false,//取消异步
success : function(resp){
if(resp.code==0){
if(ids.length>=currentListNum&¤tPage!=1){
currentPage = currentPage - 1;
}
var para = {
mypara :currentPage,
startPage : currentPage,
};
$('p.page-box').data('myPage').setOptions({data: para});
}
}
});