易笔记易笔记
首页
文章
分类
标签
首页
文章
分类
标签
AI 1GitHub 1开源 1游戏开发 1Claude Code 1工作流 1AI 编程 1效率工具 1LangChain 1Prompt 1Frontend 1cesium 2CSS 10iOS 1Safari 1css 1font 1typography 1ide 1Flexbox 1JS 3ThreeJS 23D 2PHP 1Vue 8Windows 4KMS 1Vue3 5uni-app 1Form 1Modal 1虚拟滚动 1Vue 3 1Composition API 1ref 1reactive 1美食 1空气炸锅 1烤鱼 1减脂餐 1JavaScript 1浏览器 API 1requestIdleCallback 1性能优化 2组件 1异步组件 1
防抖(Debounce)与节流(Throttle)

在前端开发中,我们经常会遇到一些频繁触发的事件,如窗口的 resize、scroll,输入框的 input,鼠标的 mousemove 等。如果这些事件的处理函数执行频率过高,可能会导致页面卡顿、性能下降等问题。为了解决这些问题,我们可以使用两种常见的优化技术:防抖(Debounce)和节流(Throttle)。

什么是防抖(Debounce)

防抖是一种限制函数执行频率的技术,它确保函数在一段时间内只执行一次。当事件被触发时,函数并不会立即执行,而是等待一段时间,如果在这段时间内事件再次被触发,则重新计时。只有当事件停止触发一段时间后,函数才会真正执行。

分类: 前端标签: JS
日期: 9/26/2025
移除匿名事件监听

window.addEventListener("onDrawSucceeded", function (c) {
      window.removeEventListener("onDrawSucceeded", arguments.callee)
 })
分类: JS标签: JS
日期: 10/8/2021
光标处插入文本

function insert() {
  let element = document.getElementById('text')
      let value = '_'
      // IE support
      if (document.selection) {
        console.log('ie')
        element.focus()
        let sel = document.selection.createRange()
        sel.text = value
      } else if (element.selectionStart || element.selectionStart === '0') { // MOZILLA and others
        console.log('modern')
        let startPos = element.selectionStart
        let endPos = element.selectionEnd
        element.value = element.value.substring(0, startPos) + value + element.value.substring(endPos, element.value.length)
        element.selectionStart = startPos + value.length
        element.selectionEnd = startPos + value.length
      } else {
        element.value += value
      }
}
分类: JS标签: JS
日期: 5/19/2022