JavaScript小面试~节流
节流,当用户发出多次请求时,需要对事件进行限制,不要让事件过多触发。场景:在用户浏览页面的时候,用户拼命滚动屏幕时,控制页面滚动的事件会多次触发,会导致网络阻塞或者出现渲染差。此时需要对其进行约束。无论用户如何操作,都忽视用户操作,只有当时间到了之后,监视到用户还在触发事件,才触发事件。
流程:触发事件,执行任务设置时间间隔>>>>在时间间隔内触发则取消任务>>>>在时间间隔后触发事件>>>则回到第一步。
我们设置点击事件,用户点击次数过多的时候,会导致事件触发过多,我们使用节流来实现在规定时间后才能再次触发事件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#text{
height: 200px;
width: 200px;
border: 1px solid red;
}
</style>
</head>
<body>
<div id='text' ></div>
</body>
<script>
function colors(){
let a =Math.floor(Math.random()*255);
let b =Math.floor(Math.random()*255);
let c =Math.floor(Math.random()*255);
document.getElementById('text').style.background=`rgb(${a},${b},${c})`
}
function throttle(func,timers){
let timer
return ()=>{
if(timer){
return;
}
timer=setTimeout(()=>{
func()
timer=null
},timers)
}
}
document.getElementById('text').addEventListener('click',throttle(colors,2000))
</script>
</html>
代码的核心思想:当点击第一次事件触发时,timer为null,执行定时器,在这两秒内事件再次被触发,timer有值,则走if内,不执行函数,两秒后触发点击事件,timer已被清空,则执行定时器内的函数,再次清空timer,以此往复执行。。。。。
节流的核心思想:在规定时间内只会执行一次,
JavaScript小面试~节流的更多相关文章
- 12个非常实用的JavaScript小技巧
在这篇文章中将给大家分享12个有关于JavaScript的小技巧.这些小技巧可能在你的实际工作中或许能帮助你解决一些问题. 使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是 ...
- JavaScript小例子:复选框全选
JavaScript小例子:复选框全选 这只是一个小例子,很简单,但是这个功能还是很常用的: 实现后效果如图: JavaScript代码: <script type="text/jav ...
- 11个不常被提及的JavaScript小技巧
这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日常工作中经常出现,但是我们又很容易忽略. 1.过滤唯一值 Set类型是在 ES6中新增的,它类似于数组,但 ...
- JavaScript小实例:拖拽应用(二)
经常在网站别人的网站的注册页中看到一个拖拽验证的效果,就是它的验证码刚开始不出来,而是有一个拖拽的条,你必须将这个拖拽条拖到底,验证码才出来,说了感觉跟没说一样,你还是不理解,好吧,我给个图你看看: ...
- javascript小实例,拖拽应用(一)
前面我们将了一下拖拽的基本思想,理论是有了,那实践呢,可以运用到什么地方呢?下面就给大家带来一个用拖拽思想写的一个小实例,供大家参考,大致效果看下图: 就是这样一个简单的一个拖拽条,你可以把它理解为滚 ...
- [转]11个教程中不常被提及的JavaScript小技巧
原文地址: https://www.cnblogs.com/ld1024/p/10723827.html 这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日 ...
- javascript小括号、中括号、大括号学习总结
作为一名编程人员,和括号打交道是必不可少的.你可知道在不同的上下文中,括号的作用是不一样的,今天就让我们简单总结下javascript小括号.中括号.大括号的用法. 总的来说,JavaScript中小 ...
- 11个教程中不常被提及的JavaScript小技巧
这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日常工作中经常出现,但是我们又很容易忽略. 1.过滤唯一值 Set类型是在ES6中新增的,它类似于数组,但是 ...
- 8 张脑图入门 JavaScript - 基础面试不倒
8 张脑图入门 JavaScript - 基础面试不倒 转载请注明出处 第一:JavaScript 的变量 第二:JavaScript 运算符 第三:JavaScript 数组 第四:JavaScri ...
- JavaScript 小实例 - 表单输入内容检测,对页面的增删改
JavaScript 小实例 - 表单输入内容检测,对页面的增删改 效果体验地址:https://xpwi.github.io/js/JavaScript01/jsForm.html 功能: 1.向页 ...
随机推荐
- Java JVM——1.JVM与Java体系结构
前言 作为Java工程师的你曾被伤害过吗?你是否也遇到过这些问题? ✘ 运行着的线上系统突然卡死,系统无法访问,甚至直接OOMM! ✘ 想解决线上JVM GC问题,但却无从下手. ✘ 新项目上线,对各 ...
- Android 13 - Media框架(1)- 总览
关注公众号免费阅读全文,进入音视频开发技术分享群! 为了加深对Android Media框架的理解,决定在这里记录下学习过程中碰到的问题以及一些个人思考.由于本人水平有限,笔记的内容可能会有一些错误, ...
- 逻辑卷缩容报错 xfs_growfs: /dev/new/new_box is not a mounted XFS filesystem
[root@server ~]# xfs_growfs /dev/new/new_box xfs_growfs: /dev/new/new_box is not a mounted XFS files ...
- Win11 LTSC 中文版来了,丝般顺滑,极速响应
最近网络上出现了泄露的Win11的LTSC版本,版本号为Build 26100.1,据息,该泄露版是微软提供给OEM厂商测试用的,是今年下半年的Windows 11 LTSC RTM版的正式版本,却被 ...
- css圆圈慢慢放大
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- php程序出现乱码
// 1, PHP程序中的 中文乱码 // php7.0以下程序,没有默认设定 编码格式 , 需要添加响应头 // header("Conte ...
- Adobe软件资源 PS PR AE等等
整理了一波Adobe软件,19年20年21年Mac版本的都有,关注Rand_cs即可领取
- kettle从入门到精通 第十六课 kettle 映射 (子转换)02
1.上节讲的子映射里面只有一个转换(类似一个java类里面只有一个公共方法),本次讲解的有两个,实际上可以有任意多个(一个java类里面有多个公共方法).两个转换分别计算x+y和x*y. 2.命名参数 ...
- C#.NET 保存图片时System.Runtime.InteropServices.ExternalException:“GDI+ 中发生一般性错误。”
System.Runtime.InteropServices.ExternalException:"GDI+ 中发生一般性错误." 原因:文件夹不存在. 解决方法: if (!Di ...
- AWS Ubuntu22.04安装Mysql及配置远程连接、SCP上传文件
一.升级apt资源包 sudo apt update 二.安装MySQL sudo apt install mysql-server 三.启动MySQL服务 sudo service mysql st ...