問題タブ [popstate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - History.pushState() (または .replaceState()) を呼び出すと「popstate」イベントがトリガーされるのはなぜですか?
AJAX 呼び出しに応じて URL を変更しています。
また、JS 内に popstate イベントを記述しています。
pushState が呼び出されるとすぐに、popstate がトリガーされます。これを防ぐ方法は?
jquery - MVC/Ajax:「JavaScript」で特定のページに移動したときに、セッションを放棄したり、アプリケーションからログアウトしたりする方法は?
MVC アプリケーションがあり、ブラウザBack
ボタンをクリックすると、ブラウザの履歴をナビゲートできます。
リンクを構築するための次の MVC コードがあります。
そして、これはJavaScript
履歴をさかのぼって処理するためのものです:
login
ただし、ページに戻るときにForward
ボタンをクリックすると、認証なしでアプリケーションに戻ることができます。
ブラウザの履歴がページに戻ったときにユーザーがサインアウトし、セッションが破棄されるようにするにはどうすればよいLogin
ですか?
jquery - Jquery SPA の実装について
JQuery を使用して SPA Web サイトを作成しようとしています。使い方はわかったのですが、いくつか質問がありますhistory.pushState
。$(window).on('popstate')
現在、popstate イベントとナビゲーション リンクを処理する router.js ファイルがあります。リンクをカスタム属性 (data-navId="templates/page/page.html") または href に配置し、
$(e).preventDefault();
. ユーザーがリンクをクリックすると$('.page-content').load('url', function() {})
、history.pushstate
実行されます。
1) これらの関数を含む router.js ファイルをすべてのテンプレートに含める必要がありますか? これらの関数のみを含む 1 つの html が必要です。テンプレートには、HTML とそれに対応するスクリプトのみを含める必要があります。私はなんとかそれを達成しましたが、ユーザーがページを更新すると、テンプレートはスタイリングなどなしで表示されます。答えはハッシュを使用していますか?または、ユーザーがブラウザを閉じて [前のページを復元] オプションを有効にすると、テンプレートは HTML のみで読み込まれます。
popstate
以前は、 andのみを使用してハッシュなしで SPA ページを開発しましhistory.pushState
たが、各ファイルにすべての html を含めてから$('.page-content').load(url + ' .page-content > *', function() {});
、更新のバグを回避するために呼び出す必要がありました。
また、Facebook がpopstate
最新のブラウザーとhashchange
古いブラウザーに使用することは、おそらく Modernizr.js またはカスタム ライブラリを含めることで知っています。しかし、すべてのテンプレートにルーターを含めずに、ルーターはどのように機能するのでしょうか?
前もって感謝します。