JS高级--Web存储 与 函数的防抖与节流

wgy08210011 2024-07-23 17:33:05 阅读 75

Web存储

总共分为三种

1.cookie:有时间限制 存储大小:几kb

2.localStorage:没有时间限制,只要不手动清除,就一直存在 存储大小:几Mb

3.sessionStorage:没有时间限制,页面关闭后自动清除 存储大小:几Mb

那么这三种这么写呢?

这三种写法一致,我们就以localStorage为例:

1.存数据  setItem(key,value) value只能是基本类型

 document.getElementById('set').onclick = function () {

        console.log('111');

        var obj = {

            name: '2'

        }

        localStorage.setItem('key1', 'value1')

        localStorage.setItem('key2', 'value2')

        localStorage.setItem('obj', JSON.stringify(obj))

    }

2.取数据  getItem(key)

document.getElementById('get').onclick = function () {

        console.log(localStorage.getItem('key1'));

        console.log(JSON.parse(localStorage.getItem('obj')));

3. 通过索引获取key

console.log(localStorage.key(0));

        console.log(localStorage.key(1));

        console.log(localStorage.key(2));

4.移除数据 removeItem(key)

 document.getElementById('remove').onclick = function () {

        localStorage.removeItem('key1')

    }

5.清除数据 clear()

document.getElementById('clear').onclick = function () {

        localStorage.clear()

    }

函数的防抖和节流

防抖和节流:防抖节流分为防抖和节流,都是为了防止短时间内高频繁调用同一接口的方法。

防抖:设置延时器,短时间高频率触发只有最后一次触发成功

var timer;

document.getElementById('btn').onclick = function () {

clearTimeout(timer)

timer = setTimeout(function () {

console.log(1);

}, 1000)

}

节流:设置状态锁,短时间高频率触发只有第一次触发成功

var key = false

document.getElementById('btn').onclick = function () {

// if (key === false) {

if (!key) {

key = true

console.log(1);

setTimeout(function () {

key = false

}, 1000)

}

}

防抖和节流的区别:函数节流不管事件触发有多频繁,都会保证在规定时间内一定会真正执行一次事件处理函数,而函数防抖只是在最后一次触发后才会执行。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。