ホームページ > ウェブフロントエンド > フロントエンドQ&A > なぜ ajax は元に戻らないのでしょうか?

なぜ ajax は元に戻らないのでしょうか?

藏色散人
リリース: 2021-12-17 15:25:06
オリジナル
1708 人が閲覧しました

ajax はブラウザのhistory.back() および forward() に対応していないため、前方または後方に進むことはできません。解決策は、対応するメニューに現在のクエリ内容に基づいて Ajax 読み込みを実行させることです。 URLアドレス。

なぜ ajax は元に戻らないのでしょうか?

この記事の動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

なぜ ajax は戻れないのでしょうか? ajax で戻れない問題の解決例

ajax には明らかな欠点があることは誰もが知っています。それは、ブラウザーの履歴に優しくないことです。back() および forward( )、前にも後にも進むことはできません。

インスタンスアドレス: ajaxが戻れない問題の解決例

解決策:

なぜ ajax は元に戻らないのでしょうか?なぜ ajax は元に戻らないのでしょうか?

#window.historyインスタンス

window.history のインスタンスをコンソールに出力すると、関連オブジェクトのプロトタイプを表示できます。

length:length は閲覧レコード キューの長さです。このページは新しく開かれたため、キューには現在のページ リンクに関連する情報のみがあり、その値は 1

です。 state:

PushState: window.history.pushState();

replaceState: window.replaceState();

Usage:

window.history.pushState({status: 0} ,'' ,'?data=1');
ログイン後にコピー

なぜ ajax は元に戻らないのでしょうか?なぜ ajax は元に戻らないのでしょうか?

変更されたブラウザ アドレス

#ここで注意すべき点は、ローカルで実行する場合は IE と Firefox で完全に実行できますが、新しいバージョンの Google ではレポートが行われるようになります。エラーです。Google のセキュリティ上の問題が原因です。コードがサーバー上に配置されている場合、そのようなエラーは発生しないはずです。

なぜ ajax は元に戻らないのでしょうか?なぜ ajax は元に戻らないのでしょうか?

問題解決のアイデアは次のとおりです:

1. 毎回

手動で左側のメニューをクリックしますAjax アドレス (? 以降) のクエリ内容がデモ HTML ページのアドレスに添付され、history.pushState を使用してブラウザ履歴に挿入されます。

2. ブラウザの前後移動により window.onpopstate イベントがトリガーされ、popstate イベントをバインドすることで、現在の URL アドレスのクエリ内容に応じて対応するメニューを読み込んで Ajax を実装することができます。前方効果と後方効果。

3. ページを初めてロードするときに、クエリ アドレスがない場合、またはクエリ アドレスが一致しない場合は、最初のメニューの Ajax アドレスのクエリ内容を使用し、history.replaceState を使用して現在のブラウザ履歴を変更し、Ajax 操作をトリガーします。

推奨学習: 「

ajax ビデオ チュートリアル

以上がなぜ ajax は元に戻らないのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート