美文网首页
丸子学HTML(学习半小时 - 存储与应用缓存)

丸子学HTML(学习半小时 - 存储与应用缓存)

作者: 丸子小姐__不懂爱 | 来源:发表于2023-11-11 11:01 被阅读0次

    web存储

    ● 需求:随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,传统方式我们以document.cookie来进行存储的,但是由于其存储大小只有4k左右,并且解析也相当的复杂,给开发带来诸多不便,HTML5规范则提出解决方案
    ● HTML5提供的解决方案
    a) window.sessionStorage
    b) window.localStorage
    特点
    a) 设置、读取方便
    b) 容量较大,sessionStorage约5M、localStorage约20M
    c) 只能存储字符串,可以将对象JSON.stringify() 编码后存储

    1)Window.sessionStorage的使用

    特点
    a. 生命周期为关闭浏览器窗口:相当于存储在当前页面的内内存中
    b. 在同一个窗口下数据可以共享(在当前页面下可以获取到,换另外一个页面下不能获取到)
    方法介绍
    a. setItem(key,value):设置数据,以键值对的方式
    b. getItem(key):通过指定的键获取对应的值内容
    c. removeItem(key):删除指定的key及对应的值内容
    d. clear():清空所有存储内容
    使用说明:

    let userData = document.getElementById('userName');
    // 存储数据
    document.getElementById('setData').onclick = function(){
      window.sessionStorage.setItem('userName', userData.value);
    }
    // 获取数据
    document.getElementById('getData').onclick = function(){
      let value = window.sessionStorage.getItem('userName');
    }
    

    尝试一下

    let oUl = document.querySelectorAll('li');
    let key1 = {name: '张三', age: 23};
    let key2 = {name: '小芳', age: 12};
    for(let i=0; i< oUl.length; i++){
        oUl[i].onclick = function() {
            switch (i) {
                case 0:
                    window.sessionStorage.setItem('key1',JSON.stringify(key1))
                    break;
                case 1:
                    window.sessionStorage.setItem('key2',JSON.stringify(key2))
                break;
                case 2:
                   let res = window.sessionStorage.getItem('key1')
                   alert(res)
                break;
                case 3:
                    window.sessionStorage.removeItem('key1')
                break;
                case 4:
                    window.sessionStorage.clear()
                default:
                    break;
            }
        }
    }
    

    2)Window.localStorage的使用

    特点
    a. 永久生效,除非手动删除:存储在硬盘上
    b. 可以多窗口共享。但是不能跨浏览器
    使用说明

    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');
    }
    // 删除数据
    document.getElementById('removeData').onclick = function() {
        window.localStorage.removeItem('userName')
    }
    

    尝试一下

    let oUl = document.querySelectorAll('li');
    let key1 = {name: '张三', age: 23};
    let key2 = {name: '小芳', age: 12};
    for(let i=0; i< oUl.length; i++){
        oUl[i].onclick = function() {
            switch (i) {
                case 0:
                    window.localStorage.setItem('key1',JSON.stringify(key1))
                    break;
                case 1:
                    window.localStorage.setItem('key2',JSON.stringify(key2))
                break;
                case 2:
                   let res = window.localStorage.getItem('key1')
                   alert(res)
                break;
                case 3:
                    window.localStorage.removeItem('key1')
                break;
                case 4:
                    window.localStorage.clear()
                default:
                    break;
            }
        }
    }
    

    应用缓存

    ● 概念:使用 HTML5,通过创建 cachemanifest 文件,可以轻松地创建 web 应用的离线版本
    ● 优势:
    a. 可配置需要缓存的资源
    b. 网络无连接应用仍可用
    c. 本地读取缓存资源,提升访问速度,增强用户体验
    d. 减少请求,缓解服务器负担
    ● Cache Manifest 基础:

    1. 如需启用应用程序缓存,请在文档的 <html> 标签中包含 manifest 属性:
    <!DOCTYPE HTML>
    <html manifest="xxx.appcache">
    ...
    </html>
    
    1. 每个指定了 manifest 的页面在用户对其访问时都会被缓存。如果未指定 manifest 属性,则页面不会
      被缓存(除非在 manifest 文件中直接指定了该页面)。
    2. manifest 文件的建议的文件扩展名是:".appcache"。
    3. 注意,manifest 文件需要配置正确的 MIME-type,即 "text/cache-manifest"。必须在 web 服务器上进行置

    ● Manifest 文件:
    a ) 概念:manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容)
    b) manifest 文件可分为三个部分
    CACHE MANIFEST 开始
    CACHE 在此标题下列出的文件将在首次下载后进行缓存
    NETWORK 在此标题下列出的文件需要与服务器的连接,且不会被缓存
    FALLBACK 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)

    1) CACHE MANIFEST说明

    CACHE MANIFEST:  必须放置在第一行,这是规定
    CACHE:
    /common.css
    /main.js
    /avatar.png
    

    上面的manifest文件列出了三个资源,当manifest文件加载后,浏览器就会从网站根目录下载这三个资源,以后当用户与因特网断开连接时,这些资源依然是可以使用的

    2)NETWORK说明

    NETWORK:
    userLogin.js
    

    network中的资源永远都不会被缓存,用户一旦断开连接则无法使用

    3)FALLBACK说明

    FALLBACK:
    /html5/ /404.html
    

    当无法连接因特网时,就会使用指定的资源代替所请求的url资源

    相关文章

      网友评论

          本文标题:丸子学HTML(学习半小时 - 存储与应用缓存)

          本文链接:https://www.haomeiwen.com/subject/hxmhwdtx.html