当前位置: 首页 > news >正文

小说网站自主建设企业网站优化工具

小说网站自主建设,企业网站优化工具,wordpress设置菜单,wordpress 友情链接分类前端防抖和节流 概述 防抖: 防止抖动,个人字面理解此处防的不是页面的抖动,而是用户手抖。为了防止用户快速且频繁的触发事件而导致多次执行事件函数,这样的场景有很多,比如监听滚动、鼠标移动事件onmousemove、频繁…

前端防抖和节流

概述

防抖: 防止抖动,个人字面理解此处防的不是页面的抖动,而是用户手抖。为了防止用户快速且频繁的触发事件而导致多次执行事件函数,这样的场景有很多,比如监听滚动、鼠标移动事件onmousemove、频繁点击表单的提交按钮等等。
节流: 节约流量,为了节约流量,页面在一个时间周期内,只触发一次动作。所以节流的目的时稀释函数的执行频率。
防抖动和节流本质是不一样的。防抖动是多次触发但只会执行一次,节流是多次触发但周期内只会执行一次

防抖实现

<html><body><input type="button" id = "btn" value="提交" /><ul id="result"></ul><script>var resultText = ""const print = (text) => {let item = document.createElement('li')item.innerText = textdocument.getElementById("result").appendChild(item)}// 创建debounce防抖函数const debounce = (func, wait) => {let timeout = null;// 此时func的this指向是window// 如果func内部想修改this指向当前函数的调用者,就必须存储this,之后借助apply修改func的this指向。// 因此借助闭包缓存调用者的thislet context = null; let args = null;// 通过定时器延迟执行事件函数let run = () => {timeout = setTimeout(() => {// 通过 apply 修改func的this指向,并让func获取真正的事件函数(即防抖函数return出来的函数)的参数,之后执行funcfunc.apply(context, args);timeout = null}, wait);}// 清除定时器let clean = () => {clearTimeout(timeout);}return function () {context = this; // 谁调用函数(这里的函数是防抖函数return出来的函数),this就指向谁。args = arguments; // arguments 是一个对应于传递给函数的参数的类数组对象,可以获取函数的参数(这里的函数是防抖函数return出来的函数)。console.log(args)if (timeout) {print('重置定时器');clean();run();} else {print('开启新的定时器');run();}}}// 要执行的事件函数const handleSubmit = (e) => {print('提交表单', e);}const fn1 = debounce(handleSubmit, 1500)document.getElementById("btn").addEventListener("click", fn1)</script>
</body></html>

节流实现

<html><body><input type="button" id="btn" value="提交" /><ul id="result"></ul><script>var resultText = ""const print = (text) => {let item = document.createElement('li')item.innerText = textdocument.getElementById("result").appendChild(item)}const throttle = (func, wait) => {let timeout = null;return function () {let context = this;let args = arguments;if (!timeout) {timeout = setTimeout(() => {timeout = null;func.apply(context, args);}, wait)}}}// 要执行的事件函数const handleSubmit = (e) => {print('提交表单', e);}const fn1 = throttle(handleSubmit, 1500)document.getElementById("btn").addEventListener("click", fn1)</script>
</body></html>
http://www.yidumall.com/news/19018.html

相关文章:

  • 建筑工程网站免费免费申请网站com域名
  • 网站优化长沙seo关键词排名
  • asp.net做的小网站银川seo
  • 手机版网站如何做文章推广平台
  • 请人做阿里巴巴网站需要注意seo专员是指什么意思
  • 南宁网站建设加q479185700湖南疫情最新消息今天
  • 营销型网站制作公司百家港 seo服务
  • 做一个招聘信息的网站_用什么做网站的软件企业营销咨询
  • wap多用户网站网站推广费用
  • 制作一个网站的费用世界杯大数据
  • 做视频剪辑接私活的网站国产长尾关键词拘挖掘
  • 北京网络电话郑州网站优化公司
  • 新一站保险网关键词排名提高
  • 网站建设上海诏业北京昨天出啥大事了
  • 建设官方网站需要注意什么南京市网站seo整站优化
  • 新疆生产建设兵团五十团网站正规seo一般多少钱
  • 本网站建设在美国引流推广多少钱一个
  • 霸州网站开发短视频seo推广
  • 建设网站域名备案查询西安seo顾问公司
  • 企业网站推广的线上渠道金戈枸橼酸西地那非片
  • 做图标得英文网站seo网络排名优化哪家好
  • 做淘宝货源网站深圳seo优化公司搜索引擎优化方案
  • 英文网站建设口碑好最近一周的重大新闻
  • 做网站去哪里好百度seo外包
  • 手机网站个人中心源码商城网站开发公司
  • 网站改版升级独立站seo怎么做
  • 自己的网站怎么优化外贸seo网站推广
  • 做网站编写代码山东潍坊疫情最新消息
  • 上传视频网站开发专业的网页制作公司
  • 网络销售网站有哪些企业网址怎么申请