ホームページ >ウェブフロントエンド >CSSチュートリアル >LocalStorage またはサーバー側ストレージを使用してページのリロード全体でメニュー状態を維持する方法は?

LocalStorage またはサーバー側ストレージを使用してページのリロード全体でメニュー状態を維持する方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-23 20:29:01851ブラウズ

How to Maintain the Menu State Across Page Reloads Using LocalStorage or Server-Side Storage?

ページのリロード全体でメニュー状態を維持する

提供されたコード スニペットでは、ページがリロードされるまで、特に「リンク 1」のメニュー状態を保持したいと考えています。メニュー項目をクリックするか、別のページがロードされます。この要件に対処するには、次のソリューションの実装を検討してください。

LocalStorage を利用する

実行可能なアプローチは、ユーザーのブラウザ内にデータを永続的に保存する方法を提供する localStorage API を利用することです。保存されたデータは、ページのリロードやブラウザ セッションの後でもそのまま残ります。

実装

1. LocalStorage にメニュー状態を保存:
ページを初期化するときに、localStorage に保存されている「menuState」という名前のエントリがあるかどうかを確認します。存在する場合は、「リンク 1」を適宜変換して、保存されたメニュー状態を適用します。

2.ユーザー操作時のメニュー状態の更新:
「リンク 1」をクリックすると、変換された状態を反映するようにローカルストレージ変数「menuState」を更新します。これにより、ページがリロードされても状態が維持されることが保証されます。

実装例は次のとおりです。

<code class="javascript">// Initialize page
$(function () {
  // Check for stored menu state
  const menuState = localStorage.getItem('menuState');
  // Apply stored state if it exists
  if (menuState) {
    applyMenuState(menuState);
  }
});

// Handle link click
$('nav ul li a').click(function () {
  // Update menu state
  const linkId = $(this).attr('href'); // Extract link ID
  const menuState = { id: linkId, transform: 'translateX(1.5em)' }; // Create menu state object
  localStorage.setItem('menuState', JSON.stringify(menuState)); // Store state in localStorage
});

// Function to apply menu state
function applyMenuState(state) {
  $(state.id).css('transform', state.transform); // Set link transformation
}</code>

長所と短所

状態をローカルに保存する (ブラウザ)

  • 長所:

    • サーバー側のオーバーヘッドなし
    • 実装が簡単
  • 短所:

    • ユーザーがアクセスできるため、状態を改ざんできる可能性があります
    • ブラウザーが削除された場合、データはクリアされますデータは削除されます

サーバー側の状態の保存

  • 長所:

    • ユーザーの改ざんから保護
    • ユーザーのカスタマイズと設定に使用可能
  • 短所:

    • サーバー側の実装とセットアップが必要です
    • サーバーの応答が遅い場合、遅延が発生する可能性があります

保存場所の選択は、特定の要件によって異なりますそして制約。状態をローカルに保存する場合は、セキュリティとユーザーによる改ざんの可能性を考慮してください。ユーザーのカスタマイズとパーソナライゼーションが重要な場合、サーバー側のストレージが有力な選択肢となります。

以上がLocalStorage またはサーバー側ストレージを使用してページのリロード全体でメニュー状態を維持する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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