今回は ajax の XHR オブジェクトについて詳しく解説します。 ajax の XHR オブジェクトを使用する際の注意点を以下に挙げます。
前の言葉 Ajaxは非同期
javascriptとXMLの略語で、中国語訳では非同期JavaScriptとXMLであり、ページをアンロードせずにサーバーに追加データを要求できます。ユーザーエクスペリエンスを向上させます。名前にXMLとありますが、ajax通信はデータ形式とは関係ありません。 ajax の内容については、以下で詳しく紹介します
作成 ajax テクノロジーの中核は、Microsoft によって最初に導入された機能である XMLHttpRequest オブジェクト (略して XHR) であり、その後他のブラウザー プロバイダーによって提供されました。同じ実装です。 XHR は、サーバーにリクエストを送信し、サーバーの応答を解析するためのスムーズなインターフェイスを提供します。サーバーからより多くの情報を非同期的に取得できます。つまり、ユーザーがクリックした後、ページを更新せずに新しいデータを取得できます
IE5 が最初です。 XHR オブジェクトを導入するブラウザ。 IE5 では、XHR オブジェクトは MSXML ライブラリの ActiveX オブジェクトを通じて実装されますが、IE7+ およびその他の標準ブラウザーはネイティブ XHR オブジェクトをサポートしています
XHR オブジェクトの作成は、XHR オブジェクトのインスタンス化とも呼ばれます。これは、XMLHTTPRequest() が
コンストラクターであるためです。 。以下は、XHR オブジェクトを作成する互換性のある方法ですvar xhr;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else{
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
リクエストを送信します
open()XHR オブジェクトを使用する場合、最初に呼び出されるメソッドは open() で、これは 3 を受け入れますパラメータ: 送信するリクエストのタイプ ("get"、"post" など)、リクエストの URL、およびリクエストを非同期に送信するかどうかを示すブール値
xhr.open("get","example.php", false);
【注意】 URL は、コードが実行される現在のページ。ドメイン内の同じポートとプロトコルを使用して、同じページにのみリクエストを送信できます。 URL がリクエストを開始したページと異なる場合、send() メソッドはリクエストの本文として送信されるデータであるパラメータを受け取ります。 send() メソッドを呼び出した後、リクエストはサーバー
xhr.open("get", "example.txt", false); xhr.send(null);
にディスパッチされ、レスポンスを受信します
レスポンスを受信した後、レスポンスデータには、主にXHRオブジェクトの属性が自動的に入力されます。次の 4 つの属性
responseText: 応答本文として返されるテキストresponseXML: 応答のコンテンツ タイプが 'text/xml' または 'application/xml' の場合、この属性は応答データの XML DOM ドキュメントを保持しますstatus: 応答の HTTP ステータス
statusText: HTTP ステータスの説明
応答を受信した後の最初のステップは、status 属性をチェックして、応答が正常に返されたことを確認することです。一般的に、
HTTP ステータス コード200 は成功の兆候とみなされます。この時点で、responseText 属性のコンテンツが準備できており、コンテンツ タイプが正しければ、responseXML にもアクセスできます。さらに、ステータス コード 304 は、要求されたリソースが変更されていないことを意味し、ブラウザーにキャッシュされたバージョンを直接使用できることを意味します
コンテンツ タイプに関係なく、応答が有効であることも意味します。 、レスポンス本文の内容はresponseText属性に保存され、非XMLデータの場合、responseXML属性の値はnullになります
if((xhr.status >=200 && xhr.status <p style="text-align: left;"></p><p style="text-align: left;">asynchronous<a href="http://www.php.cn/http/http-status-codes.html" target="_blank"></a></p><p style="text-align: left;"> 非同期レスポンスを受信する必要がある場合は、 /応答プロセスの現在アクティブなフェーズのreadyState属性を検出する必要があります。この属性の可能な値は次のとおりです: </p><p style="text-align: left;">0 (UNSENT): 未初期化。 open() メソッドはまだ呼び出されていません<span style="color: #ff0000"><strong>1(OPENED): 開始。 open() メソッドは呼び出されていますが、send() メソッドは呼び出されていません </strong></span>2 (HEADERS_RECEIVED): 送信。 send() メソッドが呼び出され、ヘッダー情報が受信されました </p><p style="text-align: left;">3 (LOADING): 受信しました。レスポンスボディ情報の一部を受信しました</p><p style="text-align: left;">4 (DONE): 完了。すべての応答データが受信され、</p>クライアント<p style="text-align: left;"></p>で使用できるようになりました<p style="text-align: left;"> 只要readyState属性值由一个值变成另一个值,都会触发一次readystatechange事件。可以利用这个事件来检测每次状态变化后readyState的值。通常,我们对readyState值为4的阶段感兴趣,因为这时所有数据都已就绪</p><p style="text-align: left;"> [注意]必须在调用open()之前指定onreadystatechange <a href="http://www.php.cn/code/5690.html" target="_blank">事件处理</a>程序才能确保跨浏览器兼容性,否则将无法接收readyState属性为0和1的情况</p><pre class="brush:php;toolbar:false">xhr.onreadystatechange = function(){ if(xhr.readyState === 4){ if(xhr.status == 200){ alert(xhr.responseText); } } }
实例
下面以一个小实例来演示ajax中xhr对象的应用
<button>获取信息</button> <p></p> <script> btn.onclick = function(){ //创建xhr对象 var xhr; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }else{ xhr = new ActiveXObject('Microsoft.XMLHTTP'); } //异步接受响应 xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ if(xhr.status == 200){ //实际操作 result.innerHTML += xhr.responseText; } } } //发送请求 xhr.open('get','message.xml',true); xhr.send(); } </script>
//message.xml
<p>hello world</p>
最后
通过实例的演示发现,ajax前端本身的内容并不难。但是,由于ajax涉及到一些后端及网络的知识,使得学起来不是很容易。以后的博文将逐步深入地介绍ajax的重点内容
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
以上がajax の XHR オブジェクトについての深い理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

PythonとJavaScriptのパフォーマンスと効率の違いは、主に以下に反映されています。1)解釈された言語として、Pythonはゆっくりと実行されますが、開発効率が高く、迅速なプロトタイプ開発に適しています。 2)JavaScriptはブラウザ内の単一のスレッドに限定されていますが、マルチスレッドおよび非同期I/Oを使用してnode.jsのパフォーマンスを改善でき、両方とも実際のプロジェクトで利点があります。

JavaScriptは1995年に発信され、Brandon Ikeによって作成され、言語をCに実現しました。 2。JavaScriptのメモリ管理とパフォーマンスの最適化は、C言語に依存しています。 3. C言語のクロスプラットフォーム機能は、さまざまなオペレーティングシステムでJavaScriptを効率的に実行するのに役立ちます。

JavaScriptはブラウザとnode.js環境で実行され、JavaScriptエンジンに依存してコードを解析および実行します。 1)解析段階で抽象的構文ツリー(AST)を生成します。 2)ASTをコンパイル段階のバイトコードまたはマシンコードに変換します。 3)実行段階でコンパイルされたコードを実行します。

PythonとJavaScriptの将来の傾向には、1。Pythonが科学コンピューティングの分野での位置を統合し、AI、2。JavaScriptはWebテクノロジーの開発を促進します。どちらもそれぞれのフィールドでアプリケーションシナリオを拡大し続け、パフォーマンスをより多くのブレークスルーを行います。

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

はい、JavaScriptのエンジンコアはCで記述されています。1)C言語は、JavaScriptエンジンの開発に適した効率的なパフォーマンスと基礎となる制御を提供します。 2)V8エンジンを例にとると、そのコアはCで記述され、Cの効率とオブジェクト指向の特性を組み合わせて書かれています。3)JavaScriptエンジンの作業原理には、解析、コンパイル、実行が含まれ、C言語はこれらのプロセスで重要な役割を果たします。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ホットトピック









