今回は、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({ 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}); } } });
注: このメソッドは部分的な同期送信方法のみです。他の送信に影響を与えるため、
別の方法があります。この方法はグローバルであり、あまりお勧めできません。他の ajax 送信に影響を与えます
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。Blod を使用することをお勧めします。 Ajax プログレスバーをダウンロードするには
以上がAjax を使用した同期実装と非同期実装の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。