ホームページ >ウェブフロントエンド >jsチュートリアル >ステートレス HTTP 環境でページ読み込み全体で変数を保持するにはどうすればよいですか?

ステートレス HTTP 環境でページ読み込み全体で変数を保持するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-24 09:39:13393ブラウズ

How Can I Persist Variables Across Page Loads in a Stateless HTTP Environment?

ページのロード間での変数の永続化

HTTP はステートレスであるため、ページのリロード間で値を保持するには外部ストレージが必要です。この制限を克服する方法は次のとおりです。

クエリ文字列

GET によるフォーム送信では、クエリ文字列 (?parameter=value) によってフォーム フィールド データが伝えられます。それに応じて隠しフィールドの値を設定します:

<form method="GET">
    <input type="hidden" name="clicked" value="true" />
    <input type="submit" />
</form>

ページの読み込み時に、クエリ パラメーターを抽出します:

function getParameterByName(name) {
    var regex = new RegExp("[\?&amp;]" + name + "=([^&amp;#]*)"),
        results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

var clicked = getParameterByName('clicked');

Web Storage

HTML5 が提供するWeb ストレージ。ブラウザベースのデータ ストレージを可能にします。 SessionStorage は、現在の閲覧セッション中にのみデータを保存します:

sessionStorage.setItem('clicked', 'true');

ページの読み込み時に、保存された値を取得します:

var clicked = sessionStorage.getItem('clicked');

Cookie

Cookie は主にサーバー側のデータ ストレージに使用されますが、クライアント側のストレージにも利用できます。 jQuery は Cookie の管理を簡素化します:

$.cookie('clicked', 'true', {expires: 1}); // expires in 1 day

ページの読み込み時に Cookie を読み取るには:

var clicked = $.cookie('clicked');

必要なくなったら忘れずに Cookie の設定を解除してください:

$.cookie('clicked', null);

Window.name

while推奨されません。window.name はページの更新やドメインにまたがって文字列を保存できます:

window.name = "my value";

ページの読み込み時に、保存された値にアクセスします:

var value = window.name;

以上がステートレス HTTP 環境でページ読み込み全体で変数を保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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