検索

HTML5の保存方法のまとめ

Jan 11, 2018 pm 04:22 PM
h5html5

この記事は主に HTML5 保存方法の概要を共有するものであり、HTML5 開発者に役立ち、誰もが HTML5 保存方法をよりよく習得できることを願っています。
  1. Cookieは急激に増加します

  2. ローカルストレージlocalstorage

  3. セッションストレージ

  4. オフラインキャッシュ(アプリケーションキャッシュ)

  5. Web SQL

  6. IndexedDB

HTML5 が出現する前は、野蛮な時代の野蛮な成長と同じように、Cookie がクライアント ストレージの世界全体を占めていました。実際のアプリケーションのニーズを適切かつ迅速に解決します。しかし、その問題も明らかです。cookie はリクエスト ヘッダーにデータを運びます。また、サイズは 4K に制限されています。これは非常に安全ではなく、外部から簡単に傍受されます。 >ドメイン汚染。 HTML5出现之前,Cookies便占据了客户端存储的整个江山,就像是蛮荒时代的野蛮生长,cookies很好、快速地满足实际应用的需求。但是它的问题也很明显,cookies会在请求头上带着数据,而且大小限制在4K以内,这是非常不安全的,容易被外部截取,还存在domain污染。

IE浏览器特别喜欢搞自己的一套,对于增加存储容量加入了UserData,大小是64K,但是其他浏览器不喜欢跟它玩,也就只有它自己一家支持。

那么,重点来了。既然cookies问题那么多,就要想办法解决,不然没法继续往前发展。首先要确认它的问题有哪些,然后根据这些问题寻找解决方案。

  • 解决4K存储容量问题

  • 解决请求头带有存储信息的问题,也就是增加安全性,通过加密通道或方式进行数据存储和传输

  • 解决关系型存储的问题

  • 跨浏览器

本地存储localstorage

存储方式

以键值对(key-value)的方式存储,永久存储,永不失效,除非手动删除。

存储容量

每个域名5M

常用的API

getItem //取记录

setItem //设置记录

removeItem //移除记录

key //取key所对应的值

clear //清除记录

本地存储sessionstorage

HTML5的本地存储API中的localstoragesessionstorage在使用方法上是相同的,区别在于sessionstorage在关闭页面后即被清空,而localstorage则会一直保存,除非手动删除。

离线缓存(application cache)

本地缓存应用所需的文件

使用方法

1、配置manifest文件

页面上:

nbsp;HTML>

...

manifest文件:

manifest是最简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容)。

manifest文件分为三个部分:

  1. CACHE MANIFEST-在此标题下列出的文件将在首次下载后进行缓存

  2. NETWOrK-在此标题下的文件需要与服务器进行连接,且不会被缓存

  3. FALLBACK-在此标题下的文件规定当页面无法被访问时的回退页面(比如404页面)

完整demo

CACHE MANIFEST
# 2016-07-24 v1.0.0
/theme.css
/main.js

NETWORK:
login.jsp

FALLBACK:
/html/ /offline.html

服务器上:manifest文件需要配置正确的MIME-type,即text/cache-manifest

常用API

核心是applicationCache对象,有个status属性,表示应用缓存的当前状态:

0 (UNCACHED):无缓存,没有和页面相关的应用缓存

1 (IDLE):闲置,应用缓存没有得到更新

2 (CHECKING):检查中,正在下载描述文件并检查更新

3 (DOWNLOADING):下载中,应用缓存正在下载与描述文件中指定的资源

4 (UPDATEREADY):更新完成,所有资源都已经下载完毕

5 (IDLE):废弃,应用缓存的描述文件已经不存在了,因此页面无法再访问应用缓存

相关事件

表示应用缓存状态的改变:

checking:在浏览器为应用缓存查找更新时触发

error:在检查更新或下载资源期间发生错误时触发

noupdate:在检查描述文件发现文件无变化时触发

downloading:在开始下载应用缓存资源时触发

progress:在文件下载应用缓存的过程中持续不断地下载时触发

updateready:在页面新的应用缓存下载完毕时触发

cached:在应用缓存完整可用时触发

application cacheIE ブラウザは特に独自のスタイルを作成することを好み、ストレージ容量を増やすために UserData が追加されますが、他のブラウザではサイズが 64K になります。あなたがそれで遊ぶのが好きではない場合、それはあなたをサポートするだけです。

🎜それでは、ここからが本題です。 cookie には非常に多くの問題があるため、それらを解決する方法を見つけなければ、先に進むことができません。まず問題を特定し、次にそれらの問題に基づいて解決策を見つけます。 🎜
    🎜🎜 4K ストレージ容量の問題を解決します🎜🎜🎜🎜 ストレージ情報を含むリクエスト ヘッダーの問題を解決します。つまり、暗号化されたチャネルを通じてセキュリティを強化しますまたはデータの保存と送信の方法🎜🎜🎜🎜リレーショナルストレージの問題の解決🎜🎜🎜🎜クロスブラウザ🎜🎜
🎜ローカルストレージlocalstorage🎜🎜ストレージ方法🎜🎜🎜キーと値のペアを使用( key -value)、永久に保存され、手動で削除しない限り有効期限が切れることはありません。 🎜🎜ストレージ容量🎜🎜🎜 ドメイン名あたり5M。 🎜🎜よく使われる API 🎜🎜🎜getItem // レコードを取得 🎜🎜setItem // レコードを設定 🎜🎜removeItem // 移動レコードを削除します🎜🎜key //keyに対応する値を取得します🎜🎜clear //レコードをクリアします🎜🎜ローカルストレージセッションストレージ🎜🎜HTML5 のローカルストレージ APIlocalstoragesessionstorage の使用方法は同じですが、違いは sessionstorage はページを閉じるとクリアされますが、localstorage は手動で削除しない限り常に保存されます。 🎜🎜オフライン キャッシュ (アプリケーション キャッシュ) 🎜🎜 アプリケーションに必要なローカル キャッシュ ファイル 🎜🎜使用方法 🎜🎜🎜1. manifest ファイルを設定します 🎜🎜 ページで: 🎜
var db = openDatabase('mydb', '1.0', 'TEST DB', 2 * 1024 * 1024, fn);
🎜 manifest ファイル: 🎜🎜🎜manifest は、何がキャッシュされているか (何がキャッシュされていないのか) をブラウザに伝える最も単純なテキスト ファイルです。 🎜🎜マニフェスト ファイルは 3 つの部分に分かれています: 🎜🎜🎜🎜🎜CACHE MANIFEST - この見出しの下にリストされているファイルは、最初のダウンロード後にキャッシュされます 🎜 🎜🎜 🎜NETWOrK - このタイトルのファイルはサーバーへの接続が必要であり、キャッシュされません🎜🎜🎜🎜FALLBACK - このタイトルのファイルには、フォールバック ページが必要です。ページにアクセスできません (404 ページなど) 🎜🎜🎜🎜完全な demo🎜🎜
var db = openDatabase('mydb', '1.0', 'TEST DB', 2 * 1024 * 1024);
db.transaction(function (tx) {
    tx.executeSql('CREATE TABLE IF NOT EXISTS WIN (id unique, name)');
})
🎜サーバー上: 🎜manifest ファイルは、正しい MIME タイプ、つまり text/cache-manifest で構成する必要があります。 🎜🎜一般的に使用される API🎜🎜🎜 コアは applicationCache オブジェクトで、このオブジェクトには status 属性があり、現在のステータスを示します。アプリケーション キャッシュ: 🎜🎜 0 (UNCACHED): キャッシュなし、ページに関連するアプリケーション キャッシュはありません🎜🎜1 (IDLE): アイドル、アプリケーション キャッシュはあります更新されていません🎜🎜2 (CHECKING): 説明ファイルを確認、ダウンロードし、更新を確認しています🎜🎜3 (DOWNLOADING): ダウンロード中、アプリケーション キャッシュがリソースをダウンロードしています説明ファイルで指定されています🎜🎜 4 (UPDATEREADY): 更新が完了し、すべてのリソースがダウンロードされました🎜🎜5 (IDLE): 放棄されました、アプリケーションキャッシュ記述ファイルはもう存在しないため、ページはアプリケーション キャッシュにアクセスできなくなります。 🎜🎜関連イベント 🎜🎜🎜 は、アプリケーション キャッシュの状態の変化を表します: 🎜🎜checking: ブラウザが更新を探すときにトリガーされます。アプリケーション キャッシュへの書き込み🎜🎜error: 更新の確認またはリソースのダウンロード中にエラーが発生したときにトリガーされます🎜🎜noupdate: 説明ファイルをチェックし、ファイルに変更なし🎜🎜downloading: アプリケーション キャッシュ リソースのダウンロードを開始するとき トリガー🎜🎜progress: ファイル ダウンロード アプリケーション キャッシュのダウンロードが継続するとトリガーされます🎜🎜updateready code>: ページ上の新しいアプリケーション キャッシュがダウンロードされたときにトリガーされます🎜🎜cached: アプリケーション キャッシュが完全に利用可能になったときにトリガーされます 🎜🎜アプリケーション キャッシュの 3 つの利点>: 🎜🎜
  1. 离线浏览

  2. 提升页面载入速度

  3. 降低服务器压力

注意事项:

  1. 浏览器对缓存数据的容量限制可能不太一样(某些浏览器设置的限制是每个站点5M

  2. 如果是manifest文件,或者内部列举的某一个文件不能正常下载,整个更新过程将视为失败,浏览器继续全部使用旧的缓存

  3. 引用manifesthtml必须与manifest文件同源,在同一个域下

  4. 浏览器会自动缓存引用manifest文件的html文件,这就导致了如果更改了html内容,也需要更新版本才能做到最新

  5. manifest文件中的CACHENETWOrKFALLBACK的位置顺序没有关系,如果是隐式声明需要在最前面

  6. FALLBACK中的资源必须和manifest文件同源

  7. 更新完版本后,必须刷新一次才会启动新版本(会出现重刷一次页面的情况),需要添加监听版本事件

  8. 站点中的其他页面即使没有设置manifest属性,请求的资源如果在缓存中也从缓存中访问

  9. manifest文件发生改变时,资源请求本身也会触发更新

离线缓存和传统浏览器缓存的区别

  1. 离线缓存是针对整个应用,浏览器缓存是单个文件

  2. 离线缓存可以主动通知浏览器更新资源

Web SQL

Web SQL数据库API并不是HTML5规范的一部分,但它是一个独立的规范,引入了一组使用SQL操作客户端数据库的APIs

核心方法

  1. openDatabase:使用现有的数据库或新建的数据库创建一个数据库对象

  2. transaction: 控制一个事务,以及基于这种情况执行提交或回滚

  3. executeSql:用于执行实际的SQL查询

打开数据库

var db = openDatabase('mydb', '1.0', 'TEST DB', 2 * 1024 * 1024, fn);

执行查询操作

var db = openDatabase('mydb', '1.0', 'TEST DB', 2 * 1024 * 1024);
db.transaction(function (tx) {
    tx.executeSql('CREATE TABLE IF NOT EXISTS WIN (id unique, name)');
})

插入数据

注:博客主题里的代码块样式
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function (tx) {
   tx.executeSql('CREATE TABLE IF NOT EXISTS WIN (id unique, name)');
   tx.executeSql('INSERT INTO WIN (id, name) VALUES (1, "winty")');
   tx.executeSql('INSERT INTO WIN (id, name) VALUES (2, "LuckyWinty")');
});
注:需要实现的代码块样式,这个是 markdowpad2 里的操作,也是很多markdown写作工具提供的操作,只需要按一下 tab 键,非常方便
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function (tx) {
   tx.executeSql('CREATE TABLE IF NOT EXISTS WIN (id unique, name)');
   tx.executeSql('INSERT INTO WIN (id, name) VALUES (1, "winty")');
   tx.executeSql('INSERT INTO WIN (id, name) VALUES (2, "LuckyWinty")');
});

读取数据

db.transaction(function (tx) {
   tx.executeSql('SELECT * FROM WIN', [], function (tx, results) {
      var len = results.rows.length, i;
      msg = "<p>查询记录条数: " + len + "</p>";
      document.querySelector('#status').innerHTML +=  msg;

      for (i = 0; i <h2 id="IndexedDB">IndexedDB</h2><p>索引数据库(<code>IndexedDB</code>)<code>API</code>(作为<code>HTML5</code>的一部分)对创建具有丰富本地存储数据的数据密集型的离线<code>HTML5 Web</code>应用程序很有用,同时它还有助于本地缓存数据,使传统在线<code>Web</code>应用程序(比如移动<code>Web</code>应用程序)能够快速的运行和响应。</p><p><strong>异步<code>API</code></strong></p><p>在<code>IndexedDB</code>大部分操作并不是我们常用的调用方法(返回结果的模式),而是(请求-响应模式),比如打开数据库的操作。</p><p>相关推荐:</p><p><a href="http://www.php.cn/html5-tutorial-361331.html" target="_self">前端HTML5几种存储方式的总结</a></p><p><a href="http://www.php.cn/js-tutorial-340047.html" target="_self">JavaScript中变量的存储方式</a></p><p><a href="http://www.php.cn/php-weizijiaocheng-302975.html" target="_self">在PHP中自定义session的存储方式_PHP教程</a></p><p class="comments-box-content"><br></p>

以上がHTML5の保存方法のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

H5(HTML5)は、新しい要素とAPIを介してWebコンテンツと設計を改善します。 1)H5はセマンティックタグ付けとマルチメディアサポートを強化します。 2)キャンバスとSVGを導入し、Webデザインを濃縮します。 3)H5は、新しいタグとAPIを介してHTML機能を拡張することにより機能します。 4)基本的な使用には、それを使用したグラフィックの作成が含まれ、高度な使用法にはwebstorageapiが含まれます。 5)開発者は、ブラウザの互換性とパフォーマンスの最適化に注意を払う必要があります。

H5:Web開発の新機能と機能H5:Web開発の新機能と機能Apr 29, 2025 am 12:07 AM

H5は多くの新しい機能と機能をもたらし、Webページのインタラクティブ性と開発効率を大幅に改善します。 1。SEOの強化などのセマンティックタグ。 2.マルチメディアサポートは、オーディオとビデオの再生とタグを簡素化します。 3. Canvas Drawingは、動的なグラフィックスの描画ツールを提供します。 4.ローカルストレージは、LocalStorageとSessionStorageを介してデータストレージを簡素化します。 5. Geolocation APIは、ロケーションベースのサービスの開発を促進します。

H5:HTML5の重要な改善H5:HTML5の重要な改善Apr 28, 2025 am 12:26 AM

HTML5は5つの重要な改善をもたらします。1。セマンティックタグにより、コードの明確性とSEO効果が向上します。 2.マルチメディアサポートは、ビデオとオーディオの埋め込みを簡素化します。 3。フォームエンハンスメントは、検証を簡素化します。 4.オフラインおよびローカルストレージにより、ユーザーエクスペリエンスが向上します。 5。キャンバスとグラフィック機能は、Webページの視覚化を強化します。

HTML5:標準とWeb開発への影響HTML5:標準とWeb開発への影響Apr 27, 2025 am 12:12 AM

HTML5のコア機能には、セマンティックタグ、マルチメディアサポート、オフラインストレージ、ローカルストレージ、フォームエンハンスメントが含まれます。 1。コードの読みやすさとSEO効果を改善するためのセマンティックタグなど。 2.ラベルでマルチメディアの埋め込みを簡素化します。 3。アプリケーションキャッシュやLocalStorageなどのオフラインストレージとローカルストレージは、ネットワークのない操作とデータストレージをサポートします。 4.フォームエンハンスメントでは、処理と検証を簡素化するための新しい入力タイプと検証プロパティを導入します。

H5コードの例:実用的なアプリケーションとチュートリアルH5コードの例:実用的なアプリケーションとチュートリアルApr 25, 2025 am 12:10 AM

H5は、さまざまな新機能と機能を提供し、フロントエンド開発の機能を大幅に向上させます。 1.マルチメディアサポート:メディアを埋め込んで要素を埋め込み、プラグインは必要ありません。 2。キャンバス:要素を使用して、2Dグラフィックとアニメーションを動的にレンダリングします。 3。ローカルストレージ:ユーザーエクスペリエンスを改善するために、ローカルストレージとセッションストレージを介して永続的なデータストレージを実装します。

H5とHTML5の接続:類似性と相違点H5とHTML5の接続:類似性と相違点Apr 24, 2025 am 12:01 AM

H5とHTML5は異なる概念です。HTML5は、新しい要素とAPIを含むHTMLのバージョンです。 H5は、HTML5に基づくモバイルアプリケーション開発フレームワークです。 HTML5はブラウザを介してコードを解析およびレンダリングしますが、H5アプリケーションはコンテナを実行し、JavaScriptを介してネイティブコードと対話する必要があります。

H5コードの構成要素:キー要素とその目的H5コードの構成要素:キー要素とその目的Apr 23, 2025 am 12:09 AM

HTML5の重要な要素には、最新のWebページの構築に使用される、、,,,,などが含まれます。 1.ヘッドコンテンツを定義します。2。リンクをナビゲートするために使用されます。3。独立した記事のコンテンツを表します。4。ページコンテンツを整理します。5。サイドバーコンテンツを表示します。

HTML5およびH5:一般的な使用法の理解HTML5およびH5:一般的な使用法の理解Apr 22, 2025 am 12:01 AM

HTML5とHTML5の略語であるHTML5とH5の間に違いはありません。 1.HTML5はHTMLの5番目のバージョンであり、Webページのマルチメディア関数とインタラクティブ機能を強化します。 2.H5は、HTML5ベースのモバイルWebページまたはアプリケーションを参照するためによく使用され、さまざまなモバイルデバイスに適しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。