• web存储


    1. 需求:随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,传统方式我们以document.cookie来进行存储的,但是由于其存储大小只有4k左右,并且解析也相当的复杂,给开发带来诸多不便,HTML5规范则提出解决方案
    2. HTML5提供的解决方案:

    a) window.sessionStorage

    b) window.localStorage

    1. 特点:

        a) 设置、读取方便

        b) 容量较大,sessionStorage5MlocalStorage20M

        c) 只能存储字符串,可以将对象JSON.stringify() 编码后存储

    1. Window.sessionStorage的使用

        a) 特点:

      1. 生命周期为关闭浏览器窗口:相当于存储在当前页面的内内存中
      2. 在同一个窗口下数据可以共享(在当前页面下可以获取到,换另外一个页面下不能获取到)

        b) 方法介绍:(两种存储方式的方法一致)

      1. SetItem(key,value):设置数据,以键值对的方式
      2. getItem(key):通过指定的键获取对应的值内容
      3. removeItem(key):删除指定的key及对应的值内容
      4. clear():清空所有存储内容

        c) 使用说明:

        <script>
            var userData=document.getElementById("userName");
            //存储数据
            document.getElementById("setData").onclick=function(){
                  window.sessionStorage.setItem("userName",userData.value);
            }
            //获取数据
            document.getElementById("getData").onclick=function(){
                  var value=window.sessionStorage.getItem("userName");
                  alert(value);
            }
        </script>

    1. Window.localStorage的使用

        a) 特点:

      1. 永久生效,除非手动删除:存储在硬盘上
      2. 可以多窗口共享

        b) 使用说明:

        <script>
            var userData=document.getElementById("userName");
            //存储数据
            document.getElementById("setData").onclick=function(){
                  window.localStorage.setItem("userName",userData.value);
            }
            //获取数据
            document.getElementById("getData").onclick=function(){
                  var value=window.localStorage.getItem("userName");
                  alert(value);
            }
            //删除数据
            document.getElementById("removeData").onclick=function(){
                window.localStorage.removeItem("userName");
            }
        </script>

      七:应用缓存:

      1. 概念:使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本
      2. 优势:

          a) 可配置需要缓存的资源

          b) 网络无连接应用仍可用

          c) 本地读取缓存资源,提升访问速度,增强用户体验

          d) 减少请求,缓解服务器负担

      1. Cache Manifest 基础:

            a) 如需启用应用程序缓存,请在文档的 <html> 标签中包含 manifest 属性:

    <!DOCTYPE HTML>

    <html manifest="demo.appcache">

    ...

    </html>

        b) 每个指定了 manifest 的页面在用户对其访问时都会被缓存。如果未指定 manifest 属性,则页面不会被缓存(除非在 manifest 文件中直接指定了该页面)。

        c) manifest 文件的建议的文件扩展名是:".appcache"

        d) 注意,manifest 文件需要配置正确的 MIME-type,即 "text/cache-manifest"。必须在 web 服务器上进行配置

    1. Manifest 文件:

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

        b) manifest 文件可分为三个部分

      • CACHE MANIFEST - 在此标题下列出的文件将在首次下载后进行缓存
      • NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存
      • FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)

        c) CACHE MANIFEST说明:

          CACHE MANIFEST,放置在第一行,是必需的:

    ----------------------------------------------------------------------------------------------------

          CACHE MANIFEST

            /theme.css

            /logo.gif

            /main.js

    ----------------------------------------------------------------------------------------------------

    上面的 manifest 文件列出了三个资源:一个 CSS 文件,一个 GIF 图像,以及一个 JavaScript 文件。当 manifest 文件加载后,浏览器会从网站的根目录下载这三个文件。然后,无论用户何时与因特网断开连接,这些资源依然是可用的

    d) NETWORK说明:

      NETWORK 小节规定文件 "login.asp" 永远不会被缓存,且离线时是不可用的,如

    -----------------------------------------------------------------------------------------------------

      NETWORK:

    login.asp

    ----------------------------------------------------------------------------------------------------

    e) FALLBACK说明:

    FALLBACK 小节规定如果无法建立因特网连接,就使用指定的资源代替所请求的url的资源,如:

    ------------------------------------------------------------------------------------------------------

    FALLBACK:

    /html5/ /404.html

    -------------------------------------------------------------------------------------------------------

    注释:当html5资源在离线状态下无法请求的时候,就使用404.html代替

    f) 更新缓存:

    一旦文件被缓存,则浏览器会继续展示已缓存的版本,即使修改了服务器上的文件。为了确保浏览器更新缓存,也需要更新 manifest 文件,也就意味着一旦应用被缓存,它就会保持缓存直到发生下列情况:

    1. 用户清空浏览器缓存
    2. manifest 文件被修改(参阅下面的提示)
    3. 由程序来更新应用缓存

    说明:更新注释行中的日期和版本号是一种使浏览器重新缓存文件的办法

  • 相关阅读:
    LNMP
    Unable to guess the mime type as no guessers are available 2 9
    django--模型字段引用
    no python application found, check your startup logs for errors
    uWSGI+django+nginx的工作原理流程与部署历程
    进程管理supervisor的简单说明
    Django 部署(Nginx)
    MyBatis学习教程
    Spring教程
    互联网的寒冬该如何度过
  • 原文地址:https://www.cnblogs.com/longsf/p/6676328.html
Copyright © 2020-2023  润新知