ページのリロード時に (グローバル) 変数を保持することは可能ですか? はいの場合、どのように?
助けてくれてありがとう。よろしくお願いします。
ページのリロード時に (グローバル) 変数を保持することは可能ですか? はいの場合、どのように?
助けてくれてありがとう。よろしくお願いします。
このCookie を使用しない JavaScript 関数を試してください。
基本的にwindow.name
、ページをリロードしたり別のサイトに移動したりしても値がクリアされないプロパティにデータを保存します。
window.localStorage
, (独自の Mozilla 拡張機能) や、一部の WebKit ベースのブラウザーによって提供されるwindow.sessionStorage
データベース抽象化 ( )などを介して、ページのリロード後もデータを保持できます。Storage インターフェイスの優れた概要については、MDC に関するこの記事と、データベースの紹介に関するこの WebKit 記事window.openDatabase
を参照してください。
同じスタイルで、文字列値をハッシュキーに保存できます。
プロパティの使用:
window.location.hash = 'flight/105';
次に、ページを更新するときに、変数を初期化して戻します。
ブラウザーがページを離れると、JavaScript 環境がリセットされます。ただし、onUnload ハンドラーを登録して配列を Cookie にシリアル化し、ページが読み込まれるたびにこれを確認し、存在する場合はシリアル化を解除することができます。
お使いのブラウザにはリセット ボタンがありますか、それともリロード ボタンですか?
ページが読み込まれると、すべてが新しく読み込まれます。前のページから何も残っていません。ページをロードしても生き残るものを保存する唯一の場所は、Cookie です。
Cookie に入れることができるデータの量は、サイトごとに数キロバイトに制限されていることに注意してください。正確な制限はブラウザによって異なりますが、おそらく 1 キロバイトまたは 2 キロバイト以上のデータを Cookie に入れることは期待できません。
クッキーについて話しているのですか?その場合は、このオープンソース モジュールを確認してください。
これにより、ブラウザのリロードをクリックした後でも、Cookie、つまりデータを簡単に保存できます。これにより、作業が非常に簡単になり、私が使用しているものです。
var cookie = new HTTP.Cookies();
cookie.write('mydata', 'myvalue', '+1y');
//later on you can get that data EVEN AFTER a reload
var x = cookie.read('mydata');
ただし、Cookie の実装をゼロから作成しようとするべきではありません。これは非常に面倒であり、Internet Explorer が動作することを確認するなど、Web ブラウザー全体で多くのテストを行う必要があるためです。