当前位置:   article > 正文

H5中的cookie和数据存储_uniapp h5 cookie

uniapp h5 cookie

H5中的cookie和数据存储

Cookie
数据存储到计算机中,通过浏览器控制添加与删除数据
Cookie的特点
存储限制
域名100个cookie,每组值大小4KB
客户端、服务器端,都会请求服务器(头信息)
页面间的cookie是共享
cookie的作用
页面用来保存信息
同一个网站中所有页面共享一套cookie
cookie的使用
设置cookie 过期时间expires
读取cookie 字符串分割
删除cookie 已经过期

cookie的设置,获取和删除
 // 设置cookie
        function setCookie(name, value, d) {
            var dateo = new Date(),	//获取当前时间对象
                day = dateo.getDate();	//获取当前的日期-1值
            dateo.setDate(day + d);	//修改当前值为d天后
            document.cookie = name + "=" + encodeURI(value) + "; expires=" + dateo.toGMTString();
            //设置cookie,expires为过期日期,设置的格式应该是"name=value; expires=过期日期"
        }

        //获取cookie
        function getCookie(name) {
            var cookiestr = document.cookie, //获取cookie,格式应该为"name=value; name0=value0"
                cookiearr0 = cookiestr.split("; "), //以"; "来分构字符串成数组 ["name=value","name0=value0"]
                cookiearr1 = [];
            for (var i = 0; i < cookiearr0.length; i++) {
                cookiearr1 = cookiearr0[i].split("="); //以"="分构字符串为数组,["name","value"]
                if (cookiearr1[0] == name) { //如果找到相同名称的cookie,返回它的值
                    return decodeURI(cookiearr1[1]);
                }
            }
            return "";//如果没有找到相同名的cookir,返回空
        }

        //删除cookie
        function removeCookie(name) {
            setCookie(name, "", -1);//把过期时间设为昨天,即删除了当前cookie
        }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
cookie的使用
说明:
$.post() 方法使用 HTTP POST 请求从服务器加载数据。
语法:
$(selector).post(URL,data,function(data,status,xhr),dataType)

  • 1
  • 2
  • 3
  • 4
  • 5
URL必需。规定将请求发送到哪个 URL。
data可选。规定连同请求发送到服务器的数据。
function(data,status,xhr)可选。规定当请求成功时运行的函数。 额外的参数: data - 包含来自请求的结果数据status - 包含请求的状态(“success”、“notmodified”、“error”、“timeout”、“parsererror”)xhr - 包含 XMLHttpRequest 对象
dataType可选。规定预期的服务器响应的数据类型。
<input type="text" id="password"/>
<button id="btn">登录</button>
<button id="getDataBtn">获取数据</button>
<button id="delDataBtn">清除数据</button>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
 <script>
        btn.onclick = function (){
            $.post('https://h5sm.com/uni/users/loginAndRegister',{
                username: username.value,
                password: password.value
            },function (res){
                console.log(res)
                if (res['status'] === 1){
                    setCookie('token',res.msg.token,7)
                    setCookie('userInfo',JSON.stringify(res.msg),1)
                }
            })
        }

        getDataBtn.onclick = function (){
            const user_str = getCookie('userInfo')
            const user_obj = JSON.parse(user_str)
            console.log(user_obj)
            console.log(user_obj.update_time)
        }

        delDataBtn.onclick = function () {
            removeCookie('token')
        }



        // 设置cookie
        function setCookie(name, value, d) {
            var dateo = new Date(),	//获取当前时间对象
                day = dateo.getDate();	//获取当前的日期-1值
            dateo.setDate(day + d);	//修改当前值为d天后
            document.cookie = name + "=" + encodeURI(value) + "; expires=" + dateo.toGMTString();
            //设置cookie,expires为过期日期,设置的格式应该是"name=value; expires=过期日期"
        }

        //获取cookie
        function getCookie(name) {
            var cookiestr = document.cookie, //获取cookie,格式应该为"name=value; name0=value0"
                cookiearr0 = cookiestr.split("; "), //以"; "来分构字符串成数组 ["name=value","name0=value0"]
                cookiearr1 = [];
            for (var i = 0; i < cookiearr0.length; i++) {
                cookiearr1 = cookiearr0[i].split("="); //以"="分构字符串为数组,["name","value"]
                if (cookiearr1[0] == name) { //如果找到相同名称的cookie,返回它的值
                    return decodeURI(cookiearr1[1]);
                }
            }
            return "";//如果没有找到相同名的cookir,返回空
        }

        //删除cookie
        function removeCookie(name) {
            setCookie(name, "", -1);//把过期时间设为昨天,即删除了当前cookie
        }
    </script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60

运行得:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-652d7Nif-1602486780844)(E:\凯文的前端博客\框架部分images\1.1.png)]

在控制台中的applicant中的有的Cookies,里面可以看出我们点击登陆会存储cookie。其他删除和获取也会是的其中的cookie发生变化。

h5 storage

​ Storage
​ 数据存储到计算机的某个地方,要通过对象上的方法增删改查
​ window.sessionStorage
​ session临时回话,从页面打开到页面关闭的时间段
​ 临时存储的特点
​ 窗口的临时存储,页面关闭,本地存储消失,跟没有设置时间的cookie一样
​ localStorage
​ 永久存储( 要通过所提供的方法删除数据 )
​ Storage的特点
​ 存储量限制 ( 5M )
​ 客户端完成,不会请求服务器处理
​ sessionStorage数据是不共享、 localStorage共享

<body>
<input type="text" id="username">
<button id="btn">存储</button>
<br>
<a href="03-storage.html">在其他页面拿数据</a>
<script>
    // 数据共享
    // 数据管理
    btn.onclick = function (){
        // console.log(window.sessionStorage);
        window.sessionStorage.setItem('user',username.value)
        window.sessionStorage.name = 'kevin'
    }
</script>
</body>

03-storage.html
<script>
    console.log(window.sessionStorage.getItem('user'))
    console.log(window.sessionStorage.name);
</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

输入数据后,点击登陆,点击a标签后,就会跳转到03-storage.html页面中并且在控制台上可以看得到

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mp7liSnb-1602486780846)(E:\凯文的前端博客\框架部分images\1.2.png)]

永久数据持久化

window.sessionStorage

localStorage 和 sessionStorage 属性允许在浏览器中存储 key/value 对的数据。

sessionStorage 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。

提示: 如果你想在浏览器窗口关闭后还保留数据,可以使用 localStorage 属性, 该数据对象没有过期时间,今天、下周、明年都能用,除非你手动去删除。

保存数据语法:

sessionStorage.setItem("key", "value");
  • 1

读取数据语法:

var lastname = sessionStorage.getItem("key");
  • 1

删除指定键的数据语法:

sessionStorage.removeItem("key");
  • 1

删除所有数据:

sessionStorage.clear();
  • 1

返回值:一个存储对象

<input type="text" id="username">
<button id="btn">存储</button>
<button id="getData">获取</button>
<button>清除单个</button>
<button>清除全部</button>
<script>
    // 同一个域  协议 域名 端口
    btn.onclick = function (){
        window.localStorage.setItem('username',username.value)
        window.localStorage.setItem('userinfo',JSON.stringify({
            username: username.value,
            age: 18
        }))
    }
    getData.onclick = function (){
        const data = localStorage.getItem('userinfo')
        console.log( JSON.parse(data)    )
    }
    // 清除单个
    window.localStorage.removeItem('username')
    // 清除多个
    window.localStorage.clear()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

ck = function (){
const data = localStorage.getItem(‘userinfo’)
console.log( JSON.parse(data) )
}
// 清除单个
window.localStorage.removeItem(‘username’)
// 清除多个
window.localStorage.clear()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/646520
推荐阅读