ホームページ ウェブフロントエンド jsチュートリアル ajax を使用して、更新せずにページのコンテンツとアドレス バーの URL を変更する

ajax を使用して、更新せずにページのコンテンツとアドレス バーの URL を変更する

May 25, 2018 am 11:52 AM
ajax リフレッシュする 変化

この記事では主に、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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

iPhone で Web ページを更新する 6 つの方法 iPhone で Web ページを更新する 6 つの方法 Feb 05, 2024 pm 02:00 PM

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

Windows 11 で F5 更新キーが機能しない Windows 11 で F5 更新キーが機能しない Mar 14, 2024 pm 01:01 PM

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

Meituan Takeout 加盟店版の配達開始価格を変更する方法 Meituan Takeout 加盟店版の配達開始価格を変更する方法 Mar 27, 2024 pm 07:20 PM

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

jQuery AJAX リクエストで発生した 403 エラーを解決する方法 jQuery AJAX リクエストで発生した 403 エラーを解決する方法 Feb 20, 2024 am 10:07 AM

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

Web ページをすばやく更新するにはどうすればよいですか? Web ページをすばやく更新するにはどうすればよいですか? Feb 18, 2024 pm 01:14 PM

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

jQuery AJAXリクエスト403エラーを解決する方法 jQuery AJAXリクエスト403エラーを解決する方法 Feb 19, 2024 pm 05:55 PM

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

Ajaxを使用してPHPメソッドから変数を取得するにはどうすればよいですか? Ajaxを使用してPHPメソッドから変数を取得するにはどうすればよいですか? Mar 09, 2024 pm 05:36 PM

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

jQuery AJAX エラー 403 の問題を解決するにはどうすればよいですか? jQuery AJAX エラー 403 の問題を解決するにはどうすればよいですか? Feb 23, 2024 pm 04:27 PM

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

See all articles