当前位置:网站首页>节流阀和本地存储
节流阀和本地存储
2022-08-02 03:35:00 【呦呦鹿鸣[email protected]】
节流阀
防止轮播图按钮连续点击造成播放过快。
节流阀目的:当上一个函数动画内容执行完毕,再去执行下一个函数动画,让事件无法连续触发。
核心实现思路:利用回调函数,添加一个变量来控制,锁住函数和解锁函数。
//开始设置一个变量
var flag = true;
if( flag) {
flag = false;
do something
} //关闭
flag = true; //打开
//利用回调函数 动画执行完毕,flag = true
点击圆圈 是不是有个动画
再点击圆圈 是不是有个动画
自动切换 是不是又是一个动画
那么这些动画再同时执行时 可能会出问题
怎么解决? -> 一个动画执行完 再去执行另外一个动画
flag = true;
a动画
if(flag){这里面再执行动画
flag = false
move(a,b,function(){
flag = true 函数执行完后将flag改成true
})这是个动画
}
b动画
if(flag){是true时执行动画
flag = false
move(a,b,function(){
flag = true 函数执行完后将flag改成true
})
这是个动画
}本地存储
随着互联网的快速发展,基于网页的应用越来越普遍,同时也变得越来越复杂,为了满足WEB网络各种各样的需求,会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案。
本地存储特性:
- 数据存储在用户浏览器中
- 设置、读取方便,甚至页面刷新不丢失数据
- 容量较大,sessionStorage约5M、localStorage约20M
- 只能存储字符串,可以将对象JSON.stringify()编码后存储
1、window.sessionStorage
sessionStorage定义的数据在同一个窗口下可以共享,关闭浏览器数据会消失,存储方式以键值对的形式存储使用
设置数据:sessionStorage.setItem(key,value)
获取数据:sessionStorage.getItem(key)
删除数据:sessionStorage.removeItem(key)
清空数据:sessionStorage.clear()
2、window.localStorage
1、声明周期永久生效,除非手动删除 否则关闭页面也会存在
2、可以多窗口(页面)共享(同一浏览器可以共享)
3. 以键值对的形式存储使用
设置数据:localStorage.setItem(key,value)
获取数据:localStorage.getItem(key)
删除数据:localStorage.removeItem(key)
清除所有数据:localStorage.clear()
案例:存储用户名
分析:
- 把数据存起来,用到本地存储
- 关闭页面,可以显示用户名,用localStroage
- 打开页面,先判断是否有这个用户名,有则在表单中显示并勾选复选框
- 当复选框方式变化时change事件
- 如果勾选就存储,否则就移除
<input type="text" id="username">
<input type="checkbox" name="" id="rname">记住用户名
<script>
var username=document.querySelector('#username');
var rname=document.querySelector('#rname');
if(localStorage.getItem('username')){
username.value=localStorage.getItem('username');
rname.checked=true;
}
rname.addEventListener('change',function(){
if(this.checked){
localStorage.setItem('username',username.value);
}else{
localStorage.removeItem('username');
}
})
</script>
版权声明
本文为[呦呦鹿鸣[email protected]]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_53841687/article/details/125639999
边栏推荐
- 倒排单词
- 最长连续不重复子序列 双指针
- Basic IO (on): file management and descriptors
- STM32F4 CAN 配置注意的细节问题
- Plus版SBOM:流水线物料清单PBOM
- QObject: Cannot create children for a parent that is in a different thread.
- el-input 只能输入整数(包括正数、负数、0)或者只能输入整数(包括正数、负数、0)和小数
- Nest.js框架项目初始化实践
- 未来智安创始人兼CEO唐伽佳荣膺36氪X·36Under36 “S级创业者”
- SLSA 框架与软件供应链安全防护
猜你喜欢
随机推荐
Kinematics Analysis of Robot Arm
STM32F4 CAN 配置注意的细节问题
防抖和节流(实例讲解)
剑指Offer 47.礼物的最大值 动态规划
QObject: Cannot create children for a parent that is in a different thread.
音视频文件码率与大小计算
携手推进国产化发展,未来智安与麒麟软件完成兼容互认证
剑指Offer 32.Ⅲ从上到下打印二叉树
Go的安装使用(一)
windows系统下php-ffmpeg类库的使用
学习(三):事件的订阅与发布
未来智安创始人兼CEO唐伽佳荣膺36氪X·36Under36 “S级创业者”
GO Module的依赖管理(二)
matlab作图显示中文正常,保存图片中文乱码
LVS+Keepalived实现高可用的负载均衡
el-input 只能输入整数(包括正数、负数、0)或者只能输入整数(包括正数、负数、0)和小数
【LeetCode】求和
HAL库笔记——通过按键来控制LED(基于正点原子STM32F103ZET6精英板)
学习(四):显示FPS,和自定义显示调试
剑指Offer 16.数值的整数次方 快速幂+ 递归









