この記事では主に、ajax と window.history.pushState を使用して、更新せずにページのコンテンツとアドレスバーの URL を変更する方法を詳しく紹介します。必要な友達はそれを参照してください
現在人気の Google Plus にアクセスするとき、慎重なユーザーは可能性があります。ページ間のクリックが ajax を介して非同期的にリクエストされ、同時にページの URL が変更されることがわかります。また、ブラウザーの進む方向と戻る方向を非常によくサポートできます。何がそんなに強力な機能を持っているのか、人々は不思議に思わずにはいられません。
HTML5 は、history.pushState とhistory.replaceState という新しい API を参照し、このインターフェイスを通じてページ URL を更新せずに変更できます。
従来の AJAX との違い
従来の Ajax には次の問題があります:
Ajax は更新せずにページのコンテンツを変更できますが、ページの URL を変更することはできません
第 2 に、アクセシビリティを向上させるために、コンテンツが変更されます。 URL のハッシュ。ただし、ハッシュメソッドはブラウザの前方および後方の問題をうまく処理できません
一部のブラウザでは onhashchange インターフェイスが導入されており、それをサポートしていないブラウザではハッシュが定期的に変更されたかどうかを判断することしかできません
また、ajax の使用スパイダーによってクロールされる領域は、多くの場合空です
従来の Ajax によって引き起こされる問題を解決するために、HTML5 には新しい API、つまり、history.pushState、history.replaceState が導入されました
PushState および replaceState インターフェイスはブラウザ履歴を操作し、現在のページの URL を変更します。
pushState は指定された URL をブラウザ履歴に追加すること、replaceState は現在の URL を指定された URL に置き換えることです。
呼び出し方法
var state = { title: title, url: options.url, otherkey: othervalue }; window.history.pushState(state, document.title, url);
タイトルと URL に加えて、状態オブジェクトには他のデータも追加できます。たとえば、Ajax を送信するための設定を保存することもできます。
replaceState と PushState は似ているため、これ以上の説明は必要ありません。
ブラウザの進む・戻る操作への応答方法
onpopstateイベントはwindowオブジェクト上で提供され、上で渡されたstateオブジェクトがイベントのサブオブジェクトとなり、保存されているタイトルとURLを取得することができます。
window.addEventListener('popstate', function(e){ if (history.state){ var state = e.state; //do something(state.url, state.title); } }, false);
このようにして、ajax と PushState を組み合わせて、リフレッシュ不要の完璧なブラウジングを実現できます。
いくつかの制限
1. ドメインを越えることはできません。これは避けられません。私がかつてインターネットで見た古典的な格言を引用すると、「JavaScript がドメインを越えることができるなら、それは信じられないほど素晴らしいことになります!」 2. 状態オブジェクトは多くのカスタム属性を格納できますが、値をオブジェクトにすることはできません。
バックエンドでの一部の処理に相当しますこのモードでは、ajaxを利用して更新せずに閲覧することに加え、変更されたURLを直接リクエストした後も正常に閲覧できることを保証する必要があるため、バックエンドでこれらを処理するために。
1. setRequestHeader('PJAX', 'true') など、特別なヘッダーを PushState と組み合わせて ajax に送信できます。
2. バックエンドが PJAX=true でヘッダーを取得すると、ページの共通部分は出力されません。例えば、PHPでは以下のような判断が可能です
function is_pjax(){ return array_key_exists('HTTP_X_PJAX', $_SERVER) && $_SERVER['HTTP_X_PJAX'] === 'true'; }
インターフェイスにはpushState、replaceState、onpopstateしかありませんが、それでも使用する際には多くの処理が必要になります。
上記は私があなたのためにまとめたものです。
関連記事:
Google Chromeブラウザでのajax障害を解決する方法ajaxに基づいて、クリックして更新せずにさらに読み込んでこのページを読み込みますAjaxのクロスドメイン問題に対する2つの解決策以上がajax を使用して、更新せずにページのコンテンツとアドレス バーの URL を変更するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

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

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

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