ホームページ >ウェブフロントエンド >jsチュートリアル >HTML5ローカルストレージの再訪
ローカルストレージの議論を開始する前に、主要なモバイルおよびデスクトップブラウザで利用可能なディスクスペースの概要を説明します。次の表は、「モバイルブラウザーのクォータを使用して作業」という記事に基づいています。
ローカルストレージのパフォーマンスについて多くの議論がありました。たとえば、以前はMozillaと一緒にいたChristian Heilmannは、「ローカルストレージには簡単な解決策はありません」と書いています。ローカルストレージは、慎重に使用されない場合、パフォーマンスをヒットさせることができます。最初に考慮する必要があるのは、それが同期APIであるため、メインのUIスレッドをブロックすることです。ローカルストレージは、ハードドライブからデータを書き、読み取ります。これは、メモリから読むよりもはるかに高価な操作になる可能性があります。データへのアクセスを提供するために、ローカルストレージはディスクからデータを読み取る必要があり、そこでパフォーマンスヒットが発生します。このパフォーマンスヒットは、少量のデータでの大きな問題ではありませんが、フルストレージの制限を使用して顕著になる可能性があります。
良い練習として、できるだけ少数の読み取りを実行してみてください。また、同期APIを扱っているため、UIスレッドのブロックを避けるために、windol.onloadイベントが発射された後にのみローカルストレージからデータを読み取るようにしてください。状況が変わりました
しかし、物事は良くなっています。 MobifyのPeter McLachlanが発行した記事は、ローカルストレージはモバイルデバイス上のネイティブキャッシュよりも5倍高速になる可能性があると説明しました。
同じ記事の付録では、モバイルブラウザでのローカルストレージのパフォーマンスの進化とその量が改善されたことがわかります。また、ローカルストレージは常にネイティブキャッシュよりも速くなっていることもわかります。クリティカルパスCSSにローカルストレージを使用しているガーディアンなど、ローカルストレージを使用してアセットをキャッシュするウェブサイトの最近のケースがいくつかあります。 Velocity Conference 2014で与えられたこのプレゼンテーションを表示して、彼らがこれをどのように行うことができるかについて詳しく理解できます。また、Smashing Magazineは最近、ローカルストレージでWebフォントのキャッシュを開始しました。この記事では、ウェブサイトで最近実装されたいくつかのパフォーマンスの改善に関するこの記事では、Webフォントの延期と、最も効果的な改善につながった変更の中でローカルストレージでそれらをキャッシュすると報告しています。
プライベートブラウジングに関するメモ
Caniuse.comで報告されているように、タブの既知の問題の下で、プライベートまたはシークレットモードで実行されるとき、Safari、iOS Safari、およびAndroidブラウザは、ローカルストレージの設定アイテムをサポートしていません。 ChromeやFirefoxなどの他のブラウザを使用すると、プライベートモードでデータをローカルストレージに保存できますが、プライベートモードを終了するとデータがパージされます。これはプライバシーの問題によるものです。誰かが永続的なデータを使用して、プライベートモードのときにユーザーのアクションについて学習する可能性があるためです。結論
特に、レイテンシのボトルネックを避けるために使用できるモバイルデバイスで、ローカルストレージとその潜在的な使用法の再訪を開始する時が来ました。資産をキャッシュする新しい方法について考えてから、ユーザーに即座にサービスを提供することができます。型破りな方法でローカルストレージ使用の実装がすでに成功していることがわかりました。 HTML5ローカルストレージに関するよくある質問(FAQ)
HTML5ローカルストレージの最大ストレージ制限はいくらですか?
HTML5ローカルストレージの最大ストレージ制限は、さまざまなブラウザーによって異なります。ただし、ほとんどの最新のブラウザは、ドメインごとに約5MBのストレージを提供しています。これは、Cookieが提供する4kb(約4096バイト)よりも大幅に大きいです。このストレージは、個々のローカルストレージオブジェクトごとではなく、ドメインごとではないことに注意することが重要です。
ブラウザがJavaScriptの「In」演算子を使用してHTML5ローカルストレージをサポートしているかどうかを確認できます。これは、ローカルストレージサポートをチェックする単純なコードスニペットです:
if(windof && window ['localstorage'] } else {
//ローカルストレージはサポートされていません
}
html5ローカルストレージからデータをクリアするにはどうすればよいですか?
ローカルストレージとセッションストレージの主な違いは、寿命と範囲にあります。ローカルストレージのデータは、ブラウザーが閉じて再開されたときでも持続しますが、ページセッションが終了するとセッションストレージのデータがクリアされます。ストレージ?
localStorage.key()メソッドとlocalStorage.getItem()と組み合わせてシンプルなループを使用して、ローカルストレージのすべての値を反復することができます。方法。
ローカルストレージデータは、異なるブラウザー間で転送できますか?各ブラウザには独自のローカルストレージがあります。
ローカルストレージクォータを超えると、quota_exceeded_err例外がスローされます。この例外は、トライキャッチブロックでキャッチし、スペースのクリアやユーザーへの通知など、適切なアクションを実行することで処理できます。
以上がHTML5ローカルストレージの再訪の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。