1 <script> 2 sessionStorage.username = '小红'; 3 document.write('User name: ' + sessionStorage.username); 4 </script>
通过代码对比可以看到,创建 sessionStorage 和 创建 localStorage 方法相同,即使用 key='username' 和 value='小红' 创建一个 sessionStorage 键/值对。在访问时,直接访问 sessionStorage 键。
下面的例子,对用户在当前 session 中访问页面的次数进行计数,并将字符串值转换为数字类型:
1 <script> 2 if(sessionStorage.F5count){ 3 sessionStorage.F5count = Number(sessionStorage.F5count) + 1; 4 } 5 else{ 6 sessionStorage.F5count = 1; 7 } 8 document.write("访问:" + sessionStorage.F5count + " time(s) this session."); 9 </script>
在浏览器打开上面的例子,刷新页面会看到计数器在增长,但是,关闭浏览器再打开后,计数器会复位,被重置为 1 。
8、HTML5 应用程序缓存使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 Web 应用的离线版本。
(1)、什么是应用程序缓存(Application Cache)?
HTML5 引入了应用程序缓存,这意味着 Web 应用可进行缓存,并可在没有因特网连接时进行访问。
应用程序缓存为应用带来三个优势:
①、离线浏览,用户可在应用离线时使用它们。
②、速度,已缓存资源加载得更快。
③、减少服务器负载,浏览器将只从服务器下载更新过或更改过的资源。
IE10,Firefox,Chrome,Safari 和 Opera 都支持应用程序缓存。
(2)、HTML5 Cache Manifest
如需启用应用程序缓存,需要在文档的 <html> 标签中包含 manifest 属性:
Cache Manifest 基础
每个指定了 manifest 的页面在用户对其访问时都会被缓存。如果未指定 manifest 属性,则页面不会被缓存,除非在 manifest 文件中直接指定了该页面。
manifest 文件建议的文件扩展名是:".appcache"。
注意:manifest 文件需要配置正确的 MIME-type,即 "text/cache-manifest"。必须在 Web 服务器上进行配置。
(3)、Manifest 文件
manifest 文件是简单的文本文件,它告知浏览器被缓存的内容,以及不缓存的内容。
manifest 文件可分为三个部分:
①、CACHE MANIFEST - 在此标题下列出的文件将在首次下载后进行缓存。
②、NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存。
③、FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)。
①、CACHE MANIFEST
第一行 CACHE MANIFEST 是必需的:
CACHE MANIFEST /style.css /logo.gif /main.js
上面的 manifest 文件列出了三个资源:一个 CSS 文件,一个 GIF 图像,以及一个 JavaScript 文件。
当 manifest 文件加载后,浏览器会从网站的根目录下载这三个文件。然后,无论用户何时与因特网断开连接,这些资源依然是可用的。
②、NETWORK
下面的 NETWORK 小节规定文件 "login.php" 永远不会被缓存,且离线时是不可用的:
NETWORK: login.php
可以使用星号来指示所有其他其他资源/文件都需要因特网连接:
NETWORK: *
③、FALLBACK
下面的 FALLBACK 小节规定如果无法建立因特网连接,则用 "offline.html" 替代 /html5/ 目录中的所有文件:
FALLBACK: /html5/ /offline.html
注意:第一个 URI 是资源,第二个是替补。
(4)、更新缓存
一旦应用被缓存,它就会保持缓存直到发生下列情况:
①、用户清空浏览器缓存。
②、manifest 文件被修改。
③、由程序来更新应用缓存。
下面是一个完整的 Manifest 文件:
CACHE MANIFEST # 2016-01-01 v1.0.0 /style.css /logo.gif /main.js NETWORK: login.php FALLBACK: /html/ /offline.html