Ajax を使用した同期実装と非同期実装の違いは何ですか?

php中世界最好的语言
リリース: 2018-04-02 14:37:16
オリジナル
2070 人が閲覧しました

今回は、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&&currentPage!=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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート