ホームページ >ウェブフロントエンド >jsチュートリアル >同期 ajax と非同期 ajax の違いは何ですか? Ajax同期と非同期の違いの概要

同期 ajax と非同期 ajax の違いは何ですか? Ajax同期と非同期の違いの概要

不言
不言オリジナル
2018-10-11 10:42:0719780ブラウズ

ajax の場合、ajax は主にフロントエンド ページでサーバー バックエンドにデータをリクエストするために使用され、同期 (async = false) と非同期 (async = true) の 2 つの実行方法に分けられることを知っておく必要があります。では、 ajax の同期リクエスト メソッドと非同期リクエスト メソッドの違いは何でしょうか? この記事では、ajax 同期と非同期実行の違いについて詳しく分析します。

まず第一に、ajax 同期リクエストと非同期リクエストとは何ですか?

ajax 非同期リクエスト:

非同期リクエスト リクエストが行われると、リクエストを送信する Ajax はページに影響を与えません。読み込みとユーザー操作は 2 つの行にあるのと同等で、それぞれが互いに影響を与えることなく独自の方向に進みます。一般的なデフォルト値は true です。非同期リクエストは、リクエストの長短に関係なく、ユーザー エクスペリエンスにまったく影響を与えません。ユーザーはページ上の他のコンテンツの操作に集中しており、待つ気はありません。

例:

$.ajax({  
     type:"POST", 
     url:"Venue.aspx?act=init", 
      dataType:"html", 
     success:function(result){  //function1()
       f1(); 
       f2();  
    } 
     failure:function (result) {  
      alert('Failed');  
     }, 
 } 
 function2();

説明: 上記のコードでは、ajax ブロックがリクエストを送信すると、function1() に留まり、サーバーからの戻りを待ちますが、同時に(この待機プロセス中に)、フロントデスクは function2() を実行します。

ajax 同期リクエスト:

同期リクエストとは、現在のリクエストが発行された後、ブラウザは何もできず待機する必要があることを意味します。リクエストが完了してデータが返された後、後続のコードが実行されます。これはキューイングと同じです。つまり、JS コードが現在の ajax にロードされると、ページ内のすべてのコードのロードが停止します。この ajax が実行されると、ページは一時停止アニメーションの状態になります。完了後、他のコード ページの実行が継続され、一時停止アニメーションの状態が解除されます (つまり、ajax がデータを返すと、後続の関数が実行されます)。

例:

$.ajax({  
     type:"POST", 
     url:"Venue.aspx?act=init", 
     dataType:"html", 
     async: false,    success:function(result){  //function1()
       f1(); 
       f2(); 
     } 
    failure:function (result) {  
      alert('Failed');  
     }, 
 } 
 function2();

説明: 上記のコードでは、asyn が false に設定されている場合、ajax リクエストは、この時点で ajax ブロックがリクエストを送信した後に同期されます。今度は、関数 1() で待機し、関数 1() 部分が完了するまで関数 2() を実行しません。

ajax 同期リクエストと非同期リクエストの意味を読んだ後、ajax 同期リクエストと非同期リクエストの違いを見てみましょう。

ajax 同期リクエストと非同期リクエストの違い:

非同期モード:

AJAX を使用してリクエストを送信した後、実行する必要があるコードがまだ存在する可能性があります。現時点では、さまざまな理由によりサーバーがリクエストに応答していない可能性がありますが、非同期実行を使用しているため、AJAX リクエスト コードを含むすべての関数の残りのコードは引き続き実行されます。リクエストの結果を別の JS 関数に渡して処理すると、2 つのスレッドが同時に実行されているような状態になります。

同期モード:

AJAX を使用してリクエストを送信した後も、後で実行する必要があるコードがまだ残っています。サーバーの応答を別の JS 関数に処理する必要がありますが、このときのコードの実行状況は、サーバーが応答しない、または応答結果を処理する JS 関数が処理を完了せずにリターンを完了した場合、その関数を含む関数の残りのコードが返されます。リクエストコードを実行できません。単一スレッドと同様に、リクエストが送信された後にブロック状態に入り、残りのコードはブロック状態になるまで実行を継続しません。

上記はこの記事の全内容です。さらに興味深い内容については、php 中国語 Web サイトを参照してください。 ! !

以上が同期 ajax と非同期 ajax の違いは何ですか? Ajax同期と非同期の違いの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。