1. AJAX とは
2005 年、Adaptive Path Company の Jesse James Garrett は、「Web アプリケーションへの新しいアプローチは読み込みのアウトライン テクニックに使用される」という記事で Ajax という言葉を明確に定義しました。ページのコンテンツを非同期的に取得します。ページクリックイベントを通じてリクエストが継続的にサーバーに送信され、サーバーは最新のデータをリアルタイムで返します。これが AJAX の機能です。
複数のアイデアとテクノロジーの融合として、それを細分化すると、これらのキーワードになります: 非同期 JavaScript と XML、非同期 JavaScript と XML。 AJAX を使用するプロセスでは、XHTML と CSS 標準ベースの表現テクノロジの使用、動的表示と対話のための DOM の使用、データ交換と処理のための XML と XSLT の使用、および XML HttpRequest の使用が、間違いなく不可欠です。非同期データ処理の場合は、JavaScript を取得して使用し、上記の手法を組み合わせます。その中でもAjaxの中核となる技術がXHRと呼ばれるXMLHttpRequestです。
2. 開発の展望
Gmail はメールの送受信に関して Outlook Express とほぼ同じ機能を備えており、クライアント プログラムのインストールは必要ありません。既存のブラウザーは、PhotoShop のようなデスクトップ プログラムのように複雑な画像を処理できません。しかし、その影響と影響を無視することはできません。
3. メリット (ユーザーエクスペリエンスの向上)
ユーザーエクスペリエンス たとえば、あなたの家がある地域が何らかの事情で断水に直面した場合、関連部門は2つの計画を発表します。1つは完全に断水することです。 8 時間給水を続けた場合、8 時間の間は完全に給水が停止され、8 時間後には通常の給水に戻ります。第二に、10 時間の間、水の供給は完全に停止されませんが、流量は以前よりも大幅に減少します。つまり、10 時間後には通常の流量に戻ります。あなただったらどの方法を選びますか?どうやら後者のようです。
非同期伝送はキャラクタを単位とする伝送であり、同期伝送はビットを基準とする伝送であり、伝送される際の受信側と送信側のクロックは異なります。一貫性があることが求められます。
非同期では、通常、各グループは 8 ビット文字であり、各グループの先頭と末尾に ストップ ビット があり、送信プロセス中に受信側と送信側のクロックは必要ありません。一貫性、つまり、非同期送信者は、受信者がいつ到着するかを知らなくても、いつでもこれらのグループを送信できます。 各非同期送信情報は、
スタート ビットで始まり、データが到着したことを受信者に通知します。これにより、受信者は送信の最後に応答、受信、キャッシュする時間が与えられます。 は情報の送信を終了することを示します。ストップ ビットは信号を 1 に戻し、次のスタート ビットが到着するまで信号を維持します。 同時に送信されるビットパケットははるかに大きくなります。各文字を独自のスタート ビットとストップ ビットとともに個別に送信するのではなく、それらを結合して一緒に送信します。これらの組み合わせをデータ フレーム、または単にフレームと呼びます。受信側のサンプリング速度がビットの到着速度と一致していることを確認して、送信側と受信側が同期しているようにします。
同期には利点もあります。通常、同期転送は非同期転送よりもはるかに高速です。受信側は各文字を開始および停止する必要はありません。フレーム同期文字が検出されると、次のデータの到着と同時にそれを受信します。また、同期送信のオーバーヘッドも比較的小さいです。 短所: データビットが長ければ長いほど、データをキャッシュするために必要なバッファが大きくなり、フレームのサイズが制限されます。また、フレームが大きくなるほど、伝送媒体を占有する連続時間が長くなります。極端な場合、これにより他のユーザーが長時間待たされることになります。 4. 動作原理とその基盤となるテクノロジー は、XmlHttpRequest
オブジェクトを使用してサーバーに非同期リクエストを送信し、サーバーからデータを取得し、JavaScript を使用して DOM を操作し、ページを更新します。XMLHttpRequest オブジェクトの属性。
そのプロパティ
は次のとおりです:onreadystatechange
状態が変化するたびにトリガーされるイベントのイベント ハンドラー。responseText サーバープロセスから返されたデータの文字列形式。
responseXML サーバープロセスから返された DOM 互換のドキュメントデータオブジェクト。 status status サーバーから返される一般的な 404 (見つからない) や 200 (準備完了) などの数値コード status ステータス コードに付随するテキスト文字列情報 ReadyState オブジェクトのステータス値 0 (初期化されていない) オブジェクト作成されましたが、まだ初期化されていません (open メソッドがまだ呼び出されていません)1 (初期化) オブジェクトは作成されましたが、sendメソッドはまだ呼び出されていません
2 (データ送信) sendメソッドは呼び出されていますが、現在のステータスとhttpヘッダーは不明です
3 (データ送信)レスポンスとhttpヘッダーが不完全なため、データの一部を受信しました
この時点でデータの一部を取得しています。完全な応答データは、responseXml と responseText を通じて取得できます
5. 欠点
ajax の欠点
私たちのほとんどは通常、ajax がもたらす利点に注目しているため、ここでは ajax の欠点に焦点を当てます。 、ユーザーエクスペリエンスの向上など。 ajax によって引き起こされる欠点は無視されています。
以下で説明する ajax の欠陥はすべて ajax が原因です。
1. Ajax は「戻る」ボタンを無効にし、ブラウザーの「戻る」メカニズムを破壊します。 「戻る」ボタンは標準的な Web サイトの重要な機能ですが、JavaScript ではうまく機能しません。ユーザーは前に戻って前の操作をキャンセルしたい場合が多いため、これは ajax によって引き起こされる深刻な問題です。では、この問題に対する解決策はあるのでしょうか?答えは「はい」です。Gmail で使用されている ajax テクノロジーがこの問題を解決することは知っていますが、これは単なる愚かな方法です。これを行うには、非表示の IFRAME を作成または使用して、ユーザーが履歴にアクセスするために戻るボタンをクリックしたときにページ上の変更を再現します。 (たとえば、ユーザーが Google マップでクリックして戻ると、非表示の IFRAME が検索され、検索結果が Ajax 要素に反映され、アプリケーションの状態がその時点の状態に復元されます。)
ただし、この問題は発生しますが、解決できるとしても、開発コストは非常に高くつき、ajax フレームワークに必要な迅速な開発とは相反します。これは、ajax によって引き起こされる非常に深刻な問題です。
2. セキュリティの問題
テクノロジーは IT 企業に新たなセキュリティ脅威ももたらします。Ajax テクノロジーは企業データの直接チャネルを確立するようなものです。これにより、開発者は以前よりも多くのデータとサーバー ロジックを誤って公開してしまう可能性があります。 Ajax ロジックはクライアント側のセキュリティ スキャン テクノロジから隠蔽できるため、ハッカーがリモート サーバーから新たな攻撃を作成できるようになります。また、Ajax は、クロスサイト スクリプティング攻撃、SQL インジェクション攻撃、資格情報ベースのセキュリティの脆弱性など、いくつかの既知のセキュリティの弱点を回避するのが困難です。
3. 検索エンジンのサポートは比較的弱いです。
4. プログラムの例外メカニズムを破壊しました。少なくとも現在の観点からは、ajax.dll や ajaxpro.dll などの ajax フレームワークはプログラムの例外メカニズムを破壊します。この問題に関しては、私も開発過程で遭遇したことがありますが、調べてみるとネット上には関連する紹介がほとんどありません。その後、私は自分自身で実験を行い、ajax と従来のフォーム送信モードを使用してデータの一部を削除しました...これはデバッグに大きな困難をもたらしました。
5. さらに、URL やリソースの配置の本来の意図に反するなど、他にもいくつかの問題があります。たとえば、URL アドレスを指定した場合、Ajax テクノロジーが使用されている場合、その URL アドレスの下に表示される内容は、この URL アドレスの下に表示される内容と異なる可能性があります。これは、リソースの配置の本来の目的に反します。
6. 一部のハンドヘルド デバイス (携帯電話、PDA など) は現在、ajax を十分にサポートしていません。たとえば、モバイル ブラウザーで ajax テクノロジを使用して Web サイトを開く場合、現時点ではサポートされていません。もちろん、この問題は私たちとは何の関係もありません。
6.ajaxのいくつかのフレームワーク
現在、私たちが主に使用しているajaxフレームワークには、ajax.dll、ajaxpro.dll、magicajax.dll、およびMicrosoftのatlasフレームワークが含まれます。 Ajax.dll と Ajaxpro.dll の 2 つのフレームワークには大きな違いはありませんが、magicajax.dll はカプセル化においてより強力であるだけです。たとえば、前に述べたように、ajax はすべての文字列を返します。 .magicajax はそれをカプセル化するだけです。しかし、この機能は非常に便利です。たとえば、ページにリストがあり、リスト内のデータが常に変化する場合、magicajax を追加した後の操作は非常に簡単です。更新されたリスト コントロールは、magicajax コントロール内に配置され、更新間隔はページロードで定義されます。atlas の原理は、magicajax の原理と似ています。ただし、注意が必要な点は、これらのフレームワークは IE のみをサポートしており、ブラウザの互換性には対応していないことです。これは、逆コンパイル ツールでコードを確認することでわかります。
これらのフレームワークに加えて、最も一般的に使用される方法は、xmlHttpRequest オブジェクトを独自に作成することです。この方法は、以前のフレームワークよりも柔軟です。さらに、ここで aspnet2.0 に付属する非同期コールバック インターフェイスについても触れておきたいと思います。ajax と同様に、ローカルの非リフレッシュも実現できますが、その実装は実際には xmlhttprequest オブジェクトのみをサポートしています。もちろん、これはマイクロソフトの競争戦略です。
以上がAJAX の長所と短所の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonとJavaScriptの主な違いは、タイプシステムとアプリケーションシナリオです。 1。Pythonは、科学的コンピューティングとデータ分析に適した動的タイプを使用します。 2。JavaScriptは弱いタイプを採用し、フロントエンドとフルスタックの開発で広く使用されています。この2つは、非同期プログラミングとパフォーマンスの最適化に独自の利点があり、選択する際にプロジェクトの要件に従って決定する必要があります。

PythonまたはJavaScriptを選択するかどうかは、プロジェクトの種類によって異なります。1)データサイエンスおよび自動化タスクのPythonを選択します。 2)フロントエンドとフルスタック開発のためにJavaScriptを選択します。 Pythonは、データ処理と自動化における強力なライブラリに好まれていますが、JavaScriptはWebインタラクションとフルスタック開発の利点に不可欠です。

PythonとJavaScriptにはそれぞれ独自の利点があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1. Pythonは、データサイエンスやバックエンド開発に適した簡潔な構文を備えた学習が簡単ですが、実行速度が遅くなっています。 2。JavaScriptはフロントエンド開発のいたるところにあり、強力な非同期プログラミング機能を備えています。 node.jsはフルスタックの開発に適していますが、構文は複雑でエラーが発生しやすい場合があります。

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。

JavaScriptフレームワークのパワーは、開発を簡素化し、ユーザーエクスペリエンスとアプリケーションのパフォーマンスを向上させることにあります。フレームワークを選択するときは、次のことを検討してください。1。プロジェクトのサイズと複雑さ、2。チームエクスペリエンス、3。エコシステムとコミュニティサポート。

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

WebStorm Mac版
便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

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