当前位置:网站首页>节流阀和本地存储
节流阀和本地存储
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
边栏推荐
- CC1101魔幻的收发切换机制
- 剑指Offer 64.求1+2+...+n 递归+&&
- QObject: Cannot create children for a parent that is in a different thread.
- Hash table problem solving method
- MongoDB相关记录
- 未来智安XDR入选《CCSIP 2022中国网络安全产业全景图》
- The slave I/O thread stops because master and slave have equal MySQL server ids
- Process (present) : custom shell command line interpreter
- 【LeetCode】链表相加 进位
- HAL库笔记——通过按键来控制LED(基于正点原子STM32F103ZET6精英板)
猜你喜欢
随机推荐
最长连续不重复子序列 双指针
Plus版SBOM:流水线物料清单PBOM
逆序对数量与归并排序
Mongoose无法更新时间戳
ffmpeg推流USB到rtsp
心余力绌:企业面临的软件供应链安全困境
MySQL5.7的安装编译及报错的解决方法
激光驱鸟器
全排列 DFS
二进制中1的个数
matlab作图显示中文正常,保存图片中文乱码
samba,nfs,iscsi网络文件系统
openssl-1.1.1g 交叉编译注意事项
el-dropdown(下拉菜单)的入门学习
滑动窗口方法
音视频文件码率与大小计算
jni中jstring与char*互转
The slave I/O thread stops because master and slave have equal MySQL server ids
树莓派4B开机自动挂载移动硬盘,以及遇到the root account is locked问题
TCP-IP协议整理









