首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >函数节流和去抖的用法和区别

函数节流和去抖的用法和区别

作者头像
马克社区
发布于 2022-04-11 11:37:11
发布于 2022-04-11 11:37:11
15700
代码可运行
举报
文章被收录于专栏:高端IT高端IT
运行总次数:0
代码可运行

我们都知道频繁触发执行一段js逻辑代码对性能会有很大的影响,尤其是在做一些效果实现方面,或者逻辑中需要进行后端请求,更是会导致卡顿,效果失效等结果,所以在处理类似的情况时,可以考虑使用函数节流和函数去抖来解决,至于具体使用哪一种方式,根据实际情况分析定夺,先来讲解一些这两者的概念,以下是我个人的一些看法,若有不足,希望大家可以提出.

函数节流

在频繁触发的情况下,需要执行的逻辑只有执行完之后,才能继续执行下一次.示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 函数节流例子
var can = true;
window.onscroll = function(){
  if(!can){
   //判断上次逻辑是否执行完毕,如果在执行中,则直接return
   return;
  }
  can = false;
  setTimeout(function(){
    //执行逻辑
    can = true;
  }, 100);
};

函数去抖

在频繁触发的情况下,只有足够的空闲时间,才执行代码一次,如果没有执行完就清除掉,重新执行逻辑,示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 函数去抖
var timer = null;
window.onscroll = function(){
    if (timer) {
      // 清除未执行的逻辑,重新执行下一次逻辑,不论上一次是否执行完毕
      clearTimeout(timer); 

更多内容请见原文,文章转载自:https://blog.csdn.net/weixin_44519496/article/details/118522735

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Cookie禁用了,Session还能用吗?详解
Cookie与 Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案。但为什么禁用Cookie就不能得到Session呢?因为Session是用Session ID来确定当前对话所对应的服务器Session,而Session ID是通过Cookie来传递的,禁用Cookie相当于失去了Session ID,也就得不到Session了。 是不是Cookie让禁用了,Session就一定不能用了呢?答案是否定的,即使cookie禁
joshua317
2018/04/16
4.2K0
Cookie禁用了,Session还能用吗?原因详解
Cookie与 Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案。但为什么禁用Cookie就不能得到Session呢?因为Session是用Session ID来确定当前对话所对应的服务器Session,而Session ID是通过Cookie来传递的,禁用Cookie相当于失去了Session ID,也就得不到Session了。 是不是Cookie让禁用了,Session就一定不能用了呢?
全栈程序员站长
2021/11/10
9660
php中Session使用方法详解
  Session的设置不同于Cookie,必须先启动,在PHP中必须调用session_start()。session_start()函数的语法格式如下:
全栈程序员站长
2022/07/07
1.4K0
PHP中Session ID的实现原理分析和实例解析
Session作用   Session的根本作用就是在服务端存储用户和服务器会话的一些信息。典型的应用有:   1、判断用户是否登录。   2、购物车功能。
php007
2020/08/11
5.3K0
Java 最常见的 208 道面试题:第六模块答案
JSP中的四种作用域包括page、request、session和application,具体来说:
Java团长
2019/04/09
7880
PHP全栈学习笔记4
JavaScript是网景公司开发的,是一种基于对象和事件驱动并具有安全性能的解释型脚本语言。
达达前端
2019/07/03
3K0
PHP全栈学习笔记4
session和cookie的区别和联系
大家都知道,session是存储在服务器端的,cookie是存储在客户端的,session依赖于cookie。
用户2141593
2019/02/20
8070
PHP漏洞之-Session劫持
服务端和客户端之间是通过session(会话)来连接沟通。当客户端的浏览器连接到服务器后,服务器就会建立一个该用户的session。每个用户的session都是独立的,并且由服务器来维护。每个用户的session是由一个独特的字符串来识别,成为session id。用户发出请求时,所发送的http表头内包含session id 的值。服务器使用http表头内的session id来识别时哪个用户提交的请求。
php007
2019/10/29
2.3K0
PHP漏洞之-Session劫持
PHP的ini_set函数用法[通俗易懂]
PHP ini_set用来设置php.ini的值,在函数执行的时候生效,脚本结束后,设置失效。无需打开php.ini文件,就能修改配置,对于虚拟空间来说,很方便。
全栈程序员站长
2022/07/11
1.3K0
带你走进PHP session反序列化漏洞
前些天打了巅峰极客,遇到了一题 session 反序列化,借此机会整理一下php session 反序列化的前生今世,愿与君共勉,如若有错,还望斧正
p4nda
2023/01/03
1.9K0
php案例 解决cookie失效后使用session的问题
session比cookie安全。因为cookie是把整个cookiekey=>value都存储在浏览器上面。而session只是在浏览器上面放一个ID。数据都在数据库中,所以就算sessionid被获取利用,但是session中的数据并不会被恶意程序获取,这一点相对cookie来说就安全了一些。
贵哥的编程之路
2022/09/29
1.3K0
php案例 解决cookie失效后使用session的问题
nginx+php负载均衡集群环境中的session共享方案梳理
在网站使用nginx+php做负载均衡情况下,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,就会出现很多问题,比如说最常见的登录状态。 下面罗列几种nginx负载均衡中session同步的方式 1)不使用session,换用cookie session是存放在服务器端的,cookie是存放在客户端的,我们可以把用户访问页面产生的session放到cookie里面,就是以cookie为中转站。你访问web服务器A,产生了session然后把它放到cookie里面,当你的请求被
洗尽了浮华
2018/01/23
2.3K0
cookie详解
今天看到一篇cookie的文章,写的特别详细,感谢 晚晴幽草轩 的分享,原文链接http://mp.weixin.qq.com/s/NXrH7R8y2Dqxs9Ekm0u33w 原文如下,记录到此供以后查阅并希望好文章能被更多需要的人看到 背景 在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cookie规范定义了服务器和客户端交互信息的格式、生存期、使用范围、安全性。 在JavaScript中可以通过 document.cookie 来读取或设置这些信息
用户1214487
2018/03/19
2.4K0
转 PHP下的session的生存周期
首先说一下session的创建的开始到结束的过程。 当程序需要为某个客户端的请求创建一个 session 的时候,服务器首先会检查这个客户端是否已经包含了一个 session 标识,这个我们称为 session id(获取方法为 session_id() ),如果已包含一个 session id 则说明此客户端之前已经创建过 session,服务器则按照 session id 把这个 session 中的值检索出来,如果客户端不包含 session id,说明此客户端第一次请求服务器或手动清除过缓存文件,则
霡霂
2018/06/04
8320
PHP会话(Session)实现用户登陆功能
对比起 Cookie,Session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,本文简单介绍 Session 的使用。 由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容。实际上在服务器端的 Session 文件,PHP 自动修改 Session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全得多。 对于 Cookie 来说,假设我们要验证用户是否登陆,就必须在 Cookie 中保存用户名和密码(可能是 md5 加密后字符串),并在每次请求页面的时候进行验证。如果用户名和密码存储在数据库,每次都要执行一次数据库查询,给数据库造成多余的负担。因为我们并不能 只做一次验证。为什么呢?因为客户端 Cookie 中的信息是有可能被修改的。假如你存储 $admin 变量来表示用户是否登陆,$admin 为 true 的时候表示登陆,为 false 的时候表示未登录,在第一次通过验证后将 $admin 等于 true 存储在 Cookie,下次就不用验证了,这样对么?错了,假如有人伪造一个值为 true 的 $admin 变量那不是就立即取的了管理权限么?非常的不安全。 而 Session 就不同了,Session 是存储在服务器端的,远程用户没办法修改 Session 文件的内容,因此我们可以单纯存储一个 $admin 变量来判断是否登陆,首次验证通过后设置 $admin 值为 true,以后判断该值是否为 true,假如不是,转入登陆界面,这样就可以减少很多数据库操作了。而且可以减少每次为了验证 Cookie 而传递密码的不安全性了(Session 验证只需要传递一次,假如你没有使用 SSL 安全协议的话)。即使密码进行了 md5 加密,也是很容易被截获的。 当然使用 Session 还有很多优点,比如控制容易,可以按照用户自定义存储等(存储于数据库)。我这里就不多说了。 Session 在 php.ini 是否需要设置呢?一般不需要的,因为并不是每个人都有修改 php.ini 的权限,默认 Session 的存放路径是服务器的系统临时文件夹,我们可以自定义存放在自己的文件夹里,这个稍后我会介绍。 开始介绍如何创建 Session。非常简单,真的。 启动 Session 会话,并创建一个 $admin 变量:
smy
2018/12/24
2.5K0
【小家java】Session和Cookie的区别和联系、分布式session的几种实现方式
session和cookie两个概念,在web开发是经常被提及到的两个概念。它们之间有联系也有区别,那么本文主要解惑一些咱们平时挺关心的一些区别:
YourBatman
2019/09/03
1.3K0
【PHP小课堂】深入学习PHP中的SESSION(一)
其实 SESSION 这个话题本来也并不想多说的,毕竟它也是我们学习 PHP 的一个必然要接触的内容。或者说,不管是什么语言,只要是做 WEB 开发,都会和 SESSION 打交道,但是在面试的时候,SESSION 和 Cookie 也是经常会被问到的问题。既然如此,那么我们还是来深入的学习一下 SESSION 中的一些函数的具体作用吧。。
硬核项目经理
2024/06/13
2190
【PHP小课堂】深入学习PHP中的SESSION(一)
PHP中session和cookie的原理及优缺点SessionCookieCookie和Session的区别和联系
Session Session的机制 session机制采用的是在服务器端保持状态的方案,并且有自己对应的唯一标识session_id,区分不同用户之前的信息。 Session的工作原理 当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中; 首先使用session_start()函数,PHP从session仓库中加载已经存储的session变量; 当执行PHP脚本时,通过使用session_register()函数注册session变量。 当PHP脚本执行结束时,未被销毁的ses
Clive
2018/04/19
2.1K0
将php的session存放到redis里面
通常我们将session存储到memcached,但是有时候老大让你将session存储到Redis怎么办,因此有必要了解下如何将session存到redis。
保持热爱奔赴山海
2019/09/18
1.4K0
XSS利用之延长Session生命周期
1.0 话题准备 —— session 和 cookie 的原理 —— ▌1.1 session介绍 ---- 简单介绍:PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。 ▌1.2 几个常用的session配置 ---- php.ini session.use_cookies=1 #1代表使用cookie记录客户端的sessionid(php.ini默认就是1) session.save_p
FB客服
2018/02/24
1K0
XSS利用之延长Session生命周期
推荐阅读
相关推荐
Cookie禁用了,Session还能用吗?详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验