ajax を使用して、更新せずにページのコンテンツとアドレス バーの URL を変更する
この記事では主に、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 サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









iPhone で Web を閲覧すると、ブラウザ アプリが開いている限り、読み込まれたコンテンツが一時的に保存されます。ただし、Web サイトはコンテンツを定期的に更新するため、古いデータを消去して最新の公開コンテンツを確認するには、ページを更新することが効果的な方法です。こうすることで、常に最新の情報と経験を得ることができます。 iPhone でページを更新したい場合は、次の投稿ですべての方法を説明します。 SafariでWebページを更新する方法【4つの方法】 iPhoneのSafariアプリで閲覧中のページを更新する方法はいくつかあります。方法 1: [更新] ボタンを使用する Safari で開いているページを更新する最も簡単な方法は、ブラウザのタブ バーにある [更新] オプションを使用することです。サファなら

Windows 11/10 PC では F5 キーが正しく機能しませんか? F5 キーは通常、デスクトップまたはエクスプローラーを更新したり、Web ページをリロードしたりするために使用されます。ただし、読者の中には、F5 キーがコンピュータを更新していて、正しく動作しないと報告している人もいます。 Windows 11 で F5 更新を有効にする方法は? Windows PC を更新するには、F5 キーを押すだけです。一部のラップトップまたはデスクトップでは、更新操作を完了するために Fn+F5 キーの組み合わせを押す必要がある場合があります。 F5 キーを押して更新しても機能しないのはなぜですか? F5 キーを押してもコンピューターを更新できない場合、または Windows 11/10 で問題が発生している場合は、ファンクション キーがロックされていることが原因である可能性があります。その他の考えられる原因には、キーボードまたは F5 キーが含まれます

Meituan Takeout Merchant Edition の運用プロセスにおいて、配達開始価格の設定は重要なリンクです。合理的な開始配達価格は、販売者がコストを管理するのに役立つだけでなく、注文量をある程度増やすことができるため、全体的な収益も増加します。ただし、多くの販売者は最低配達価格を変更する方法についてあまり知りません。そこで、次の記事では、この Web サイトの編集者が販売者向けに詳細な開始価格設定ガイドをお届けします。さらに詳しく知りたい場合は、次の記事を参照してください。 Meituan Takeout Merchant Center にログインして店舗設定を入力し、店舗管理を選択し、店舗管理ページ上部のナビゲーション切り替えで配送情報を選択し、配達エリアを追加をクリックして操作を完了します。場所を追加すると、対応する送料が自動的に表示されます。ご注文完了後、お手元に届きます

タイトル: jQuery AJAX リクエストの 403 エラーを解決する方法とコード例。403 エラーは、サーバーがリソースへのアクセスを禁止するリクエストを指します。このエラーは通常、リクエストにアクセス許可がないか、サーバーによって拒否されたために発生します。 jQueryAJAX リクエストを行うときにこのような状況に遭遇することがありますが、この記事ではこの問題の解決方法とコード例を紹介します。解決策: 権限を確認します。まず、要求された URL アドレスが正しいことを確認し、リソースにアクセスするための十分な権限があることを確認します。

ネットワークを日常的に使用する中でページの更新は頻繁に行われますが、Web ページにアクセスすると、Web ページが読み込まれない、表示が異常になるなどの問題が発生することがあります。現時点では、通常、問題を解決するためにページを更新することを選択しますが、ページを素早く更新するにはどうすればよいでしょうか?ページ更新のショートカット キーについて説明します。ページ更新ショートカットキーは、キーボード操作で現在のWebページを素早く更新する方法です。オペレーティング システムやブラウザが異なると、ページを更新するためのショートカット キーが異なる場合があります。以下では一般的な W を使用します。

jQuery は、クライアント側の開発を簡素化するために使用される人気のある JavaScript ライブラリです。 AJAX は、Web ページ全体をリロードせずに、非同期リクエストを送信し、サーバーと対話するテクノロジーです。ただし、jQuery を使用して AJAX リクエストを行うと、403 エラーが発生することがあります。 403 エラーは通常、セキュリティ ポリシーまたは権限の問題が原因で、サーバーによってアクセスが拒否されたエラーです。この記事では、jQueryAJAX リクエストで 403 エラーが発生した場合の解決方法について説明します。

Ajax を使用して PHP メソッドから変数を取得することは、Web 開発では一般的なシナリオであり、Ajax を使用すると、データを更新せずにページを動的に取得できます。この記事では、Ajax を使用して PHP メソッドから変数を取得する方法と、具体的なコード例を紹介します。まず、Ajax リクエストを処理し、必要な変数を返すための PHP ファイルを作成する必要があります。以下は、単純な PHP ファイル getData.php のサンプル コードです。

jQueryAJAX エラー 403 の問題を解決するにはどうすればよいですか? Web アプリケーションを開発する場合、非同期リクエストを送信するために jQuery がよく使用されます。ただし、jQueryAJAX の使用時に、サーバーによってアクセスが禁止されていることを示すエラー コード 403 が発生する場合があります。これは通常、サーバー側のセキュリティ設定が原因ですが、回避する方法があります。この記事では、jQueryAJAX エラー 403 の問題を解決する方法と具体的なコード例を紹介します。 1.作る
