search
HomeWeb Front-endJS TutorialThe meaning of function throttling and anti-shake


function debounce(fn, delay, immediate){
    var timeout,
        args,
        context,
        timestamp,
        result;    
        var later = function(){
        var last = Date.now() - timestamp;       
        if(last < delay && last >= 0){
            timeout = setTimeout(later, delay - last);
        }else{
            timeout = null;            
            if(!immediate){
                result = fn.apply(context, args);                
                if(!timeout){
                    context = args = null;
                }
            }
        }
    };    return function(){
        context = this;
        args = arguments;
        timestamp = Date.now();
        console.log(timestamp);        
        var callNow = immediate && !timeout;        
        if(!timeout){
            timeout = setTimeout(later, delay);
        }        if(callNow){
            result = fn.apply(context, args);
            context = args = null;
        }        return result
    }
};function throttle(method , duration ,delay ){
    var timer = null, 
        // 记录下开始执行函数的时间
        begin = new Date();    
        return function(){
        var context = this, 
            args = arguments, 
            // 记录下当前时间
            current = new Date();        // 函数节流里的思路
        clearTimeout(timer);        // 记录下的两个时间相减再与duration进行比较
        if(current-begin >= duration){
             method.apply(context , args);
             begin = current;
        }else{  
            timer = setTimeout(function(){
                method.apply(context , args);
            } , delay);
        }
    }
}
window.onresize = throttle(function(){console.log(&#39;resize&#39;)},1000,500)

The above is the detailed content of The meaning of function throttling and anti-shake. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
WICC币是什么?WICC币是什么?Feb 21, 2024 pm 06:00 PM

WICC币是什么?WICC币是WaykiChainCoin的简称,是基于区块链技术的数字货币。WaykiChain作为一条高效、可扩展和安全的公链,致力于为企业和开发者提供完善的区块链基础设施和创新工具。作为WaykiChain生态系统的核心代币,WICC币在平台上扮演着重要角色。WICC币的特点1.安全可靠:WaykiChain采用DPoS共识算法,具备可靠的分布式锁定机制和共识机制,保证了网络的高度安全性。2.高效可扩展:WaykiChain具备毫秒级的交易确认速度,每秒可处理数千笔交易,并

怎么关闭快手私信显示内容功能?关闭快手私信显示内容什么意思?怎么关闭快手私信显示内容功能?关闭快手私信显示内容什么意思?Mar 21, 2024 pm 05:41 PM

作为国内领先的短视频平台,快手拥有大量用户,私信功能是用户之间互动的重要渠道。然而,一些用户可能觉得私信显示内容的功能让他们感到困扰,他们希望能够有选择地关闭这个功能。一、怎么关闭快手私信显示内容功能?1.打开快手应用,登录个人账号。2.进入快手主界面,点击右下角的“我的”按钮,进入个人中心。3.在个人中心页面,点击头像,进入个人设置。4.在个人设置页面,找到“隐私设置”选项,点击进入。5.在隐私设置页面,找到“私信显示内容”选项,点击进入。6.在私信显示内容设置页面,关闭“私信显示内容”功能的

了解PHP中eol的含义了解PHP中eol的含义Mar 20, 2024 am 11:09 AM

深入了解PHP中eol的含义及代码示例在PHP编程中,eol是一个常见的术语,代表着"EndOfLine",即行尾。在不同操作系统中,行尾的表示方式可能不同,这就引出了eol的概念。在Windows系统中,一行的结束由回车符()和换行符()组成,即"";而在Unix/Linux系统中,行尾只由换行符()表示,即""。这样的差异可能会导致在不同操作系统

CRPS:贝叶斯机器学习模型的评分函数CRPS:贝叶斯机器学习模型的评分函数Apr 12, 2023 am 11:07 AM

连续分级概率评分(Continuous Ranked Probability Score, CRPS)或“连续概率排位分数”是一个函数或统计量,可以将分布预测与真实值进行比较。机器学习工作流程的一个重要部分是模型评估。这个过程本身可以被认为是常识:将数据分成训练集和测试集,在训练集上训练模型,并使用评分函数评估其在测试集上的性能。评分函数(或度量)是将真实值及其预测映射到一个单一且可比较的值 [1]。例如,对于连续预测可以使用 RMSE、MAE、MAPE 或 R 平方等评分函数。如果预测不是逐点

详解 MySQL 主机名的含义详解 MySQL 主机名的含义Mar 01, 2024 pm 12:03 PM

MySQL主机名的含义及具体用法MySQL是一种流行的开源关系型数据库管理系统,被广泛应用于各种web应用程序中。在MySQL中,主机名是一个重要的概念,它用来指定连接到数据库服务器的主机的名称。在本文中,我们将详细解释MySQL主机名的含义,以及如何在实际开发中使用它。MySQL主机名的含义:在MySQL中,主机名是用来指定允许连接到

详解JavaScript函数如何实现可变参数?(总结分享)详解JavaScript函数如何实现可变参数?(总结分享)Aug 04, 2022 pm 02:35 PM

js是弱类型语言,不能像C#那样使用param关键字来声明形参是一个可变参数。那么js中,如何实现这种可变参数呢?下面本篇文章就来聊聊JavaScript函数可变参数的实现方法,希望对大家有所帮助!

学Python,还不知道main函数吗学Python,还不知道main函数吗Apr 12, 2023 pm 02:58 PM

Python 中的 main 函数充当程序的执行点,在 Python 编程中定义 main 函数是启动程序执行的必要条件,不过它仅在程序直接运行时才执行,而在作为模块导入时不会执行。要了解有关 Python main 函数的更多信息,我们将从如下几点逐步学习:什么是 Python 函数Python 中 main 函数的功能是什么一个基本的 Python main() 是怎样的Python 执行模式Let’s get started什么是 Python 函数相信很多小伙伴对函数都不陌生了,函数是可

pin码是什么 pin码怎么解锁pin码是什么 pin码怎么解锁Feb 22, 2024 pm 04:13 PM

pin码就是指手机sim卡的个人识别密码。解析1pin码(pin1)是电信名词,全名PersonalIdentificationNumber。就是指手机sim卡的个人识别密码。手机pin码是保护手机sim卡的一类安全防范措施,避免他人冒用手机sim卡,要是启动了pin码,那么每次开机后,便要填写4-8位数pin码。当填写pin码无效超过三次时,将自动锁卡保护。解锁要使用PUK码拨通运营商客服电话。补充:pin码怎么解锁1打开设置,在设置页面中点击其他设置。2在其他设置页面中点击设备与隐私。3在设

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools