`

前端性能优化:高频执行事件/方法的防抖

阅读更多

日期:2013-6-25  来源:GBin1.com

上一篇我们说了用InnerHTML和DocumentFragment来减少DOM注入的次数,这次我们说一说如何处理高频事件触发时的优化。

前端性能优化:高频执行事件/方法的防抖

高频执行事件/方法的防抖

通常,开发人员会在有用户交互参与的地方添加事件,而往往这种事件会被频繁触发。想象一下窗口的resize事件或者是一个元素的onmouseover事件 - 他们触发时,执行的非常迅速,并且触发很多次。如果你的回调过重,你可能使浏览器死掉。

这就是为什么我们要引入防抖。

防抖可以限制一个方法在一定时间内执行的次数。以下代码是个防抖示例:

// 取自 UnderscoreJS 实用框架
function debounce(func, wait, immediate) {
    var timeout;
    return function() {
        var context = this, args = arguments;
        var later = function() {
            timeout = null;
            if (!immediate) func.apply(context, args);
        };
        var callNow = immediate && !timeout;
        clearTimeout(timeout);
        timeout = setTimeout(later, wait);
        if (callNow) func.apply(context, args);
    };
  }

// 添加resize的回调函数,但是只允许它每300毫秒执行一次
window.addEventListener('resize', debounce(function(event) {

    // 这里写resize过程

}, 300));

debounce方法返回一个方法,用来包住你的回调函数,限制他的执行频率。使用这个防抖方法,就可以让你写的频繁回调的方法不会妨碍用户的浏览器!

下一篇,我们将介绍网络存储中静态缓存和非必要内容的优化方法

via Nelly@极客标签

来源:前端性能优化:高频执行事件/方法的防抖

0
0
分享到:
评论

相关推荐

    前端项目的性能优化方案

    前端项目性能优化是提升用户体验的...总结,前端性能优化是一个系统工程,涉及到网络、构建工具、代码执行效率和特定场景的优化。通过对这些方面的细致调整,可以显著提升用户体验,使前端项目运行更加流畅,响应更快。

    web前端工程师-高频面试题

    以上只是部分知识点,实际面试中还会涉及到更多技术细节和实战经验,如webpack配置、git操作、性能优化、设计模式等。对于初级前端求职者和初学者来说,全面掌握这些知识点是提升竞争力的关键。

    前端性能优化建议

    前端性能优化建议主要涉及页面加载、执行、渲染和样式等多方面的优化策略,这些策略可以帮助开发者显著提升网站的性能,增强用户体验。性能优化是一个系统工程,需要在设计、开发和维护各个环节中持续关注和实践。 ...

    前端项目-jquery-throttle-debounce.zip

    在前端开发中,性能优化是不可或缺的一环,特别是在处理用户交互事件时,为了提供流畅的用户体验,我们需要控制函数的执行频率。"前端项目-jquery-throttle-debounce.zip" 是一个专注于这一目标的项目,它利用 ...

    支付宝前端技术之路中文PDF版

    二、前端性能优化 2.1 页面加载优化:书中详细阐述了如何减少HTTP请求、压缩静态资源、缓存策略等手段,以提升网页加载速度,优化用户体验。 2.2 JavaScript执行效率:讨论了如何优化JavaScript代码,减少DOM操作...

    web前端工程师 高频面试题

    26. **性能优化**:异步组件、懒加载、计算属性缓存、事件代理等。 27. **diff算法与虚拟DOM**:减少DOM操作,提高性能。 28. **Vuex数据丢失与history模式404**:Vuex数据丢失可通过持久化存储解决,history模式404...

    三分钟学前端JS篇.pdf

    - 回调函数防抖和节流:防抖是指在高频事件触发后,事件处理函数只会执行一次,如果在同一时间内高频事件再次触发,则重新计算等待时间。节流则是将频繁触发的事件限制在一定时间内只触发一次。 2. 异步编程 - ...

    2021大厂前端核心面试题详解一1

    在2021年的大厂前端面试中,面试官可能会关注应聘者对实际问题解决能力、浏览器事件循环机制、事件冒泡和捕获的理解,以及防抖和节流的运用。下面将对这些知识点进行详细阐述。 1. 解决实际问题的能力: 在工作中...

    【JavaScript源代码】vue使用节流函数的踩坑实例指南.docx

    防抖函数的主要作用是将重复的事件合并成一次处理,常用于高频触发的事件处理,比如窗口大小改变、滚动条滚动等。其基本原理是在一系列操作完成后,只执行最后一次操作,从而有效减少无谓的资源消耗。 ```javascript...

    Documents_防抖_网页刷新_源码.zip

    标题中的“防抖”和“网页刷新”是两个重要的关键词,它们涉及到前端开发中的性能优化技术。防抖(Debouncing)是一种常见的JavaScript优化策略,主要用于处理高频触发的事件,如窗口的resize、scroll事件或者用户...

    在JavaScript里防止事件函数高频触发和高频调用的方法

    在实际开发中,建议开发者深入学习和实践相关的性能优化技术,以打造更加高效和流畅的前端应用。同时,对于Underscore.js这类工具库中提供的实用函数,也值得进行系统性的学习和了解,以便在需要时能够快速应用到...

    挖财(24问).pdf

    4. 防抖和节流的区别:防抖和节流都是前端性能优化中处理高频事件(例如resize、scroll等)的常用技术。防抖技术是当事件触发后延迟执行回调,如果在延迟时间内又触发了事件,则重新计时。节流技术则是限制函数在...

    前端项目-scrollgress.zip

    另外,考虑到性能优化,滚动事件处理函数需要谨慎编写,避免在高频事件触发时导致页面性能下降。可能需要使用防抖(debounce)或节流(throttle)技术来限制函数执行频率,确保在不影响用户体验的同时,降低CPU占用。 ...

    浅析JavaScript 函数防抖和节流

    总之,函数防抖和节流是前端性能优化中的常见技巧,理解它们的原理与适用场景对于编写高性能的前端代码至关重要。在实际开发中,我们要根据具体需求来选择使用防抖还是节流。防抖适合在最后一次输入后才需要触发的...

    你可能不知道的前端知识点

    以上只是部分你可能不知道的前端知识点,实际上,前端开发的知识体系非常广泛,包括但不限于CSS布局、响应式设计、性能优化、前端框架(如React、Vue、Angular)、前端构建工具(Webpack、Gulp、Rollup)等。...

    详解JS函数防抖

    函数防抖是一种常见的前端性能优化手段,尤其适用于处理那些高频触发的事件,例如窗口的resize、页面的scroll、输入框的键盘输入等。防抖技术的核心思想在于,当事件被频繁触发时,并不会立即执行响应的函数,而是...

    javascript进阶版纯手写课件

    在JavaScript中,函数防抖(debounce)和节流(throttle)是两种常见的性能优化手段,主要应用于处理高频触发的事件。 **防抖**技术是通过设置一个延时器,在事件被触发后设置一个延时,如果在这段时间内事件再次被...

    前端工程师面试必备开发知识视频教学合集

    函数节流(throttle)和防抖(debounce)是前端优化用户体验的两种常用技术。节流是指限定函数在一定时间内只能执行一次;而防抖则是指在最后一次触发操作后的一定时间内没有再次触发,则执行该函数。这两种方法常...

    简单实现节流函数和防抖函数过程解析

    无论是节流函数还是防抖函数,它们都是前端性能优化的有效工具。通过合理地使用这些工具,可以避免不必要的计算,减少资源消耗,提升用户体验。对于开发者来说,理解并掌握这些概念,能够帮助他们写出更高效的代码。...

    浅析Vue 防抖与节流的使用

    总结来说,防抖和节流技术在前端开发中是非常实用的性能优化手段,通过合理地控制函数的执行频率,可以有效减少不必要的计算,降低浏览器的资源消耗,提升用户体验。在Vue.js中,我们可以利用Vue提供的生命周期钩子...

Global site tag (gtag.js) - Google Analytics