XMLHTTPオブジェクトカプセル化技術サンプルコードの詳細説明
ajax テクノロジーの実装は主に xmlhttprequest に依存しますが、非同期データ送信のためにこれを呼び出す場合、xmlhttp は短期間のプロセスであるため (イベントの処理後に破棄されます)、オブジェクトがパッケージ化されていない場合は、 xmlhttprequest を再構築するには、呼び出しごとに大規模なコード セクションを記述する必要がありますが、これは実際には良いアイデアではありません。幸いなことに、多くのオープンソース Ajax フレームワークは、xmlhttp をカプセル化するためのソリューションを提供しています。ここでは、ajaxtags に付属するprototype-1.4.0.jsをマスターとして使用して、xmlhttpオブジェクトを再利用可能なメソッドにカプセル化する方法を確認します。
prototype.js では、最初に変数を定義します。Ajax
var Ajax = { getTransport: function() { return Try.these( function() {return new ActiveXObject('Msxml2.XMLHTTP')}, function() {return new ActiveXObject('Microsoft.XMLHTTP')}, function() {return new XMLHttpRequest()} ) || false; }, activeRequestCount: 0 }
この変数は xmlhttprequest を返します。Ajax.getTransport() を呼び出すと、毎回新しい xmlhttprequest オブジェクトが返されることがわかります。
基本メソッド Ajax.Base と基本メソッドのプロトタイプは Ajax 変数で定義されます (最初、各スクリプト メソッドにはデフォルトで空のプロトタイプがあり、これは Object のプロトタイプを継承します。それを Object で変更すると、この基本メソッドは Ajax.Request に継承されます。継承されたプロトタイプの同じ名前のメソッドまたは変数が Ajax.Request に埋め込まれた場合、オーバーロードが実装されることに注意してください。
Ajax.Base プロトタイプで最も重要なのは、後で使用する setOptions メソッドです。プロトタイプの
setOptions: function(options) { this.options = { method: 'post', asynchronous: true, parameters: '' }
Requestは、Ajax.Requestプロトタイプ(Ajax.Request.prototype)を定義することで実装されます。ただし、Ajax.Request を直接呼び出すことはできません。主な理由は、Ajax.Request が統一された処理プロセスを提供していないことです。また、リクエストを通じて応答を取得する必要がある場合もあります。 (顧客がメッセージを送信したのに応答が届かないことを想像してください。それは非常に迷惑です~) プロトタイプは応答 (Ajax.Responders) もカプセル化しますが、両方は互いに独立しています。これらを統合するにはどうすればよいでしょうか。
プロトタイプには 2 つのソリューションが提供されています。1 つは Ajax.Updater で、もう 1 つは Ajax.PeriodicalUpdater です。この 2 つは、次の 3 つのパラメーターを渡す必要があるという共通点があります。たとえば、返されたデータを HTML の
url:
requestリクエストが渡される宛先。リクエスト オブジェクトはサーブレットの do*** メソッドによってのみ自動的に取得できるため、宛先はサーブレットまたは jspservlet である必要があります。
options:
構造体は、上記の Ajax.Base で定義された setOptions() のオプション構造体と同じである必要があります。空の場合、または書き込まれていない場合は、Ajax.Base で定義された初期値が使用されます (何も指定されていない場合に使用されます)。パラメータが渡されます)。
2 つの違いは、Ajax.Updater は、responseText が完全に取得され、例外が発生しない場合にのみ、コンテナにコンテンツが書き込まれることです。ただし、PeriodicalUpdater は、responseText を取得するときに書き込みます。完了したかどうかは関係ありません。取得したら、例外が発生するか、responseText が完全に取得されるまで、コンテンツをコンテナーに入力します。ほとんどの場合、最初のメソッドを使用する必要があります。これは、最初のメソッドは例外が発生したときにコンテナ内の例外情報を表示しますが、2 番目のメソッドは表示しない可能性があるためです。
xmlhttp がカプセル化されたので、必要なのは上記の 3 つのパラメーターのみです。オプション パラメーターを設定するときは、post メソッドを使用する場合はオプションの構造に従って設定する必要があることに注意してください。 opitons で postBody 属性を設定し、転送する queryString を本文に入れることもできます。 post メソッドを使用して転送するスクリプトの例は次のとおりです。
/*表单提交用post方法*/ function doRequest(container,paraments,url){ var options ={ method: 'post', asynchronous: true, postBody: paraments }; new Ajax.Updater(container,url,options); }
最後に言わなければならないのは、中国語のエンコードの問題です。 、プロトタイプは渡されたパラメーターには影響しません。エンコーディング変換作業が実行され、渡された各値は encodeURIComponent を通じて処理されます。エンコードは utf-8 に変換されます。バックグラウンドでリクエストを取得する場合は、ページのエンコード形式に関係なく、一律に request.setCharacterEncoding("UTF-8") を使用してリクエストのエンコードを設定する必要があります。 post メソッドを使用してデータを転送すると、自動的に実行されます:
request. setHeader('Content-type','application/x-www-form-urlencoded') 送信データのエンコード形式が正しいことを確認してください。
以上がXMLHTTPオブジェクトカプセル化技術サンプルコードの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

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

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









XML ファイルは PPT で開くことができますか? XML、Extensible Markup Language (Extensible Markup Language) は、データ交換とデータ ストレージで広く使用されている汎用マークアップ言語です。 HTML と比較して、XML はより柔軟であり、独自のタグとデータ構造を定義できるため、データの保存と交換がより便利で統一されます。 PPT (PowerPoint) は、プレゼンテーションを作成するために Microsoft によって開発されたソフトウェアです。包括的な方法を提供します。

HTTP 301 ステータス コードの意味を理解する: Web ページ リダイレクトの一般的なアプリケーション シナリオ インターネットの急速な発展に伴い、Web ページの操作に対する人々の要求はますます高くなっています。 Web デザインの分野では、Web ページのリダイレクトは一般的かつ重要なテクノロジであり、HTTP 301 ステータス コードによって実装されます。この記事では、HTTP 301 ステータス コードの意味と、Web ページ リダイレクトにおける一般的なアプリケーション シナリオについて説明します。 HTTP301 ステータス コードは、永続的なリダイレクト (PermanentRedirect) を指します。サーバーがクライアントのメッセージを受信すると、

HTTP ステータス コード 200: 成功した応答の意味と目的を調べる HTTP ステータス コードは、サーバーの応答のステータスを示すために使用される数値コードです。このうち、ステータス コード 200 は、リクエストがサーバーによって正常に処理されたことを示します。この記事では、HTTP ステータス コード 200 の具体的な意味と使用法について説明します。まず、HTTP ステータス コードの分類を理解しましょう。ステータス コードは、1xx、2xx、3xx、4xx、5xx の 5 つのカテゴリに分類されます。このうち、2xx は成功応答を示します。 200 は 2xx で最も一般的なステータス コードです

解決策: 1. リクエスト ヘッダーの Content-Type を確認する; 2. リクエスト本文のデータ形式を確認する; 3. 適切なエンコード形式を使用する; 4. 適切なリクエスト メソッドを使用する; 5. サーバー側のサポートを確認する。

C++ で HTTP ストリーミングを実装するにはどうすればよいですか? Boost.Asio と asiohttps クライアント ライブラリを使用して、SSL ストリーム ソケットを作成します。サーバーに接続し、HTTP リクエストを送信します。 HTTP 応答ヘッダーを受信して出力します。 HTTP 応答本文を受信して出力します。

PHPXML 関数を使用して XML データを処理します。 XML データを解析します。 simplexml_load_file() および simplexml_load_string() は、XML ファイルまたは文字列を読み込みます。 XML データにアクセスする: SimpleXML オブジェクトのプロパティとメソッドを使用して、要素名、属性値、およびサブ要素を取得します。 XML データを変更する: addChild() メソッドと addAttribute() メソッドを使用して、新しい要素と属性を追加します。シリアル化された XML データ: asXML() メソッドは、SimpleXML オブジェクトを XML 文字列に変換します。実用的な例: 製品フィード XML を解析し、製品情報を抽出し、変換してデータベースに保存します。

HTTP リクエストがタイムアウトになり、サーバーから 504GatewayTimeout ステータス コードが返されることがよくあります。このステータス コードは、サーバーがリクエストを実行しても、リクエストに必要なリソースを取得できないか、一定時間が経過してもリクエストの処理を完了できないことを示します。これは 5xx シリーズのステータス コードで、サーバーに一時的な問題または過負荷が発生し、その結果クライアントのリクエストを正しく処理できなくなったことを示します。 HTTP プロトコルでは、さまざまなステータス コードに特定の意味と用途があり、504 ステータス コードはリクエストのタイムアウトの問題を示すために使用されます。顧客の中で

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます
