Ajax 自体はテクノロジーではありませんが、2005 年に Jesse James Garrett によって開拓され、HTML または XHTML、カスケード スタイル シート、JavaScript、ドキュメント オブジェクト モデル、XML などの多くの既存テクノロジーを適用する「新しい」方法として説明されています。 、XSLT、そして最も重要なのは XMLHttpRequest オブジェクトです。
AJAX とは何ですか?
ページを更新せずにデータをリクエストする
サーバーからデータを取得する
ステップ 1 – リクエスト方法
httpRequest.onreadystatechange = nameOfTheFunction;
<code>httpRequest.onreadystatechange = function(){<br> // Process the server response here.<br>};</code>
<code>httpRequest.open('GET', 'http://www.example.org/some.file', true);<br>httpRequest.send();</code>
2 番目のパラメータは、リクエストされる URL です。セキュリティ上の理由から、デフォルトではクロスドメイン URL リクエストを行うことはできません。すべてのページが同じドメイン名の下にあることを確認してください。そうしないと、open() メソッドを呼び出すときに「アクセス許可が拒否されました」エラーが発生します。 よくあるクロスドメインの問題は、Web サイトのドメイン名がdomain.tld であるにもかかわらず、www.domain.tld を使用してページにアクセスしようとすることです。本当にクロスオリジンリクエストを実行したい場合は、HTTP アクセス制御を確認してください。
オプションの 3 番目のパラメーターは、このリクエストが同期か非同期かを設定します。 true (デフォルト値) の場合、JavaScript は実行を継続し、ユーザーがページを操作している間、サーバーはデータを返します。これがAJAXです。
-
send() メソッドのパラメータには、サーバーに送信 (POST) する任意のデータを指定できます。フォーム データは、サーバーが解析できる形式 (クエリ文字列:
"name=value&anothername="+encodeURIComponent(myVar)+"&so=on"
など)、またはその他の形式 (multipart/form-data、JSON、XML など) である必要があります。
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
httpRequest.onreadystatechange = nameOfTheFunction;
この方法は何をするのですか?まず、リクエストのステータスを確認する必要があります。値が XMLHttpRequest.DONE (4) の場合、すべてのサーバー応答が受け入れられたことを意味します。
<code>if (httpRequest.readyState === XMLHttpRequest.DONE) {<br> // Everything is good, the response was received.<br>} else {<br> // Not ready yet.<br>}</code>
- 4 (完了) または (リクエストが完了し、応答の準備ができていますリクエスト完了の応答が準備されています)
Value
StateDescription
0
UNSENT-
クライアントが作成されました。open() はまだ呼び出されていません。
1 OPENED open() が呼び出され、ヘッダーとステータスが利用可能です。 3 LOADING ダウンロード中;部分的なデータを保持します。 4 DONE 操作は完了しました。 (Source)接下来,检查HTTP响应的 response code 。查看 W3C看到可能的值。下面例子我们用response code是不是等于200来判断ajax请求是否成功。<code>if (httpRequest.status === 200) {<br> // Perfect!<br>} else {<br> // There was a problem with the request.<br> // For example, the response may have a 404 (Not Found)<br> // or 500 (Internal Server Error) response code.<br>}</code>
检查完响应值后。我们可以随意处理服务器返回的数据,有两个选择获得这些数据:httpRequest.responseText – 返回服务器响应字符串
httpRequest.responseXML – 返回服务器响应XMLDocument 对象 可以传递给JavaScript DOM 方法
上面的代码只有在异步的情况下有效(open() 的第三个参数设置为true)。如果你用同步请求,就没必要指定一个方法。但是我们不鼓励使用同步请求,因为同步会导致极差的用户体验。Step 3 – 一个简单的例子
我们把上面的放在一起合成一个简单的HTTP请求。我们的JavaScript 将请求一个HTML 文档, test.html, 包含一个字符串 "I'm a test."然后我们alert()响应内容。这个例子使用普通的JavaScript — 没有引入jQuery, HTML, XML 和 PHP 文件应该放在同一级目录下。<code><button id="ajaxButton" type="button">Make a request</button><br><br><script><br/>(function() {<br/> var httpRequest;<br/> document.getElementById("ajaxButton").addEventListener('click', makeRequest);<br/><br/> function makeRequest() {<br/> httpRequest = new XMLHttpRequest();<br/><br/> if (!httpRequest) {<br/> alert('Giving up :( Cannot create an XMLHTTP instance');<br/> return false;<br/> }<br/> httpRequest.onreadystatechange = alertContents;<br/> httpRequest.open('GET', 'test.html');<br/> httpRequest.send();<br/> }<br/><br/> function alertContents() {<br/> if (httpRequest.readyState === XMLHttpRequest.DONE) {<br/> if (httpRequest.status === 200) {<br/> alert(httpRequest.responseText);<br/> } else {<br/> alert('There was a problem with the request.');<br/> }<br/> }<br/> }<br/>})();<br/></script></code>
在这个例子里:用户点击"Make a request” 按钮;
事件调用 makeRequest() 方法;
请求发出,然后 (onreadystatechange)执行传递给 alertContents();
alertContents() 检查响应是否 OK, 然后 alert() test.html 文件内容。
注意 1: 如果服务器返回XML,而不是静态XML文件,你必须设置response headers 来兼容i.e.。如果你不设置headerContent-Type: application/xml, IE 将会在你尝试获取 XML 元素之后抛出一个JavaScript "Object Expected" 错误 。注意 2: 如果你不设置header Cache-Control: no-cache 浏览器将会缓存响应不再次提交请求,很难debug。你可以添加永远不一样的GET 参数,例如 timestamp 或者 随机数 (查看 bypassing the cache)注意 3: 如果 httpRequest 变量是全局的,混杂调用 makeRequest()会覆盖各自的请求,导致一个竞争的状态。在一个closure 里声明 httpRequest 本地变量 来避免这个问题。在发生通信错误(如服务器崩溃)、onreadystatechange方法会抛出一个异常,当访问响应状态。为了缓解这个问题,你可以用ry…catch包装你的if...then 语句:<code>function alertContents() {<br> try {<br> if (httpRequest.readyState === XMLHttpRequest.DONE) {<br> if (httpRequest.status === 200) {<br> alert(httpRequest.responseText);<br> } else {<br> alert('There was a problem with the request.');<br> }<br> }<br> }<br> catch( e ) {<br> alert('Caught Exception: ' + e.description);<br> }<br>}</code>
Step 4 – 使用 XML 响应
在前面的例子里,在获取到响应之后,我们用request 对象responseText 属性获得 test.html 文件内容。现在让我们尝试获取responseXML 属性。首先,让我们创建一个有效的XML文档,留着待会我们请求。(test.xml)如下:<code><?xml version="1.0" ?><br><root><br> I'm a test.<br></root></code>
在这个脚本里,我们只要修改请求行为:<code>...<br>onclick="makeRequest('test.xml')"><br>...</code>
然后在alertContents()里,我们需要把 alert(httpRequest.responseText); 换为:<code>var xmldoc = httpRequest.responseXML;<br>var root_node = xmldoc.getElementsByTagName('root').item(0);<br>alert(root_node.firstChild.data);</code>
这里获得了responseXML的XMLDocument,然后用 DOM 方法来获得包含在XML文档里面的内容。你可以在here查看test.xml,在here查看修改后的脚本。Step 5 – 使用数据返回
最后,让我们来发送一些数据到服务器,然后获得响应。我们的JavaScript这次将会请求一个动态页面,test.php将会获取我们发送的数据然后返回一个计算后的字符串 - "Hello, [user data]!",然后我们alert()出来。首先我们加一个文本框到HTML,用户可以输入他们的姓名:<code><label>Your name: <br> <input type="text" id="ajaxTextbox"><br></label><br><span id="ajaxButton" style="cursor: pointer; text-decoration: underline"><br> Make a request<br></span></code>
我们也给事件处理方法里面加一行获取文本框内容,并把它和服务器端脚本的url一起传递给 makeRequest() 方法:<code> document.getElementById("ajaxButton").onclick = function() { <br> var userName = document.getElementById("ajaxTextbox").value;<br> makeRequest('test.php',userName); <br> };</code>
我们需要修改makeRequest()方法来接受用户数据并且传递到服务端。我们将把方法从 GET 改为 POST,把我们的数据包装成参数放到httpRequest.send():<code>function makeRequest(url, userName) {<br><br> ...<br><br> httpRequest.onreadystatechange = alertContents;<br> httpRequest.open('POST', url);<br> httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');<br> httpRequest.send('userName=' + encodeURIComponent(userName));<br> }</code>
如果服务端只返回一个字符串, alertContents() 方法可以和Step 3 一样。然而,服务端不仅返回计算后的字符串,还返回了原来的用户名。所以如果我们在输入框里面输入 “Jane”,服务端的返回将会像这样:{"userData":"Jane","computedString":"Hi, Jane!"}要在alertContents()使用数据,我们不能直接alert responseText, 我们必须转换数据然后 alert computedString属性:<code>function alertContents() {<br> if (httpRequest.readyState === XMLHttpRequest.DONE) {<br> if (httpRequest.status === 200) {<br> var response = JSON.parse(httpRequest.responseText);<br> alert(response.computedString);<br> } else {<br> alert('There was a problem with the request.');<br> }<br> }<br>}</code>
test.php 文件如下:<code>$name = (isset($_POST['userName'])) ? $_POST['userName'] : 'no name';<br>$computedString = "Hi, " . $name;<br>$array = ['userName' => $name, 'computedString' => $computedString];<br>echo json_encode($array);</code>
查看更多DOM方法, 请查看 Mozilla's DOM implementation 文档。
以上がアヤックスとは何ですか? ajax の詳しい紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

JavaScriptは、Webページのインタラクティブ性とダイナミズムを向上させるため、現代のWebサイトの中心にあります。 1)ページを更新せずにコンテンツを変更できます。2)Domapiを介してWebページを操作する、3)アニメーションやドラッグアンドドロップなどの複雑なインタラクティブ効果、4)ユーザーエクスペリエンスを改善するためのパフォーマンスとベストプラクティスを最適化します。

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ホットトピック









