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

陕西省建设厅网站劳保统筹基金做视频up主视频网站

陕西省建设厅网站劳保统筹基金,做视频up主视频网站,做微商怎么找客源加人,淘客推广网站怎么做的文章目录 清理所有定时器防抖代码节流代码自定义时间戳定时器复杂实现 vueuse中工具类 定时任务手动实现工具类useInterval 清理所有定时器 export function clearAllTimer() {let id setTimeout(() { }, 0)while (id 0) {window.clearTimeout(id)id--} }防抖代码 … 文章目录 清理所有定时器防抖代码节流代码自定义时间戳定时器复杂实现 vueuse中工具类 定时任务手动实现工具类useInterval 清理所有定时器 export function clearAllTimer() {let id setTimeout(() { }, 0)while (id 0) {window.clearTimeout(id)id--} } 防抖代码 当函数绑定一些持续触发的事件如resize、scroll、mousemove 键盘输入多次快速click等等 如果每次触发都要执行一次函数会带来性能下降资源请求太频繁等问题 // 第一个参数是需要进行防抖处理的函数第二个参数是延迟时间默认为1秒钟 // 这里多传一个参数immediate用来决定是否要第一次立即执行, 默认为false function debounce(fn, delay 1000, immediate false, resultCb) { // 实现防抖函数的核心是使用setTimeout// time变量用于保存setTimeout返回的Idlet time null// isImmediateInvoke变量用来记录是否立即执行, 默认为falselet isImmediateInvoke false// 将回调接收的参数保存到args数组中function _debounce(...args) {// 如果time不为0也就是说有定时器存在将该定时器清除if (time ! null) {clearTimeout(time)}// 当是第一次触发并且需要触发第一次事件if (!isImmediateInvoke immediate) {// 将函数的返回值保存到result中const result fn.apply(this, args)if (typeof resultCb function) {// 当用户传递了resultCb函数时执行该函数并将结果以参数传递出去。resultCb(result)}// 将isImmediateInvoke设置为true这样不会影响到后面频繁触发的函数调用isImmediateInvoke true;}time setTimeout(() {// 使用apply改变fn的this同时将参数传递给fnfn.apply(this, args) // 当定时器里的函数执行时也就是说是频繁触发事件的最后一次事件// 将isImmediateInvoke设置为false这样下一次的第一次触发事件才能被立即执行isImmediateInvoke false}, delay)}// 防抖函数会返回另一个函数该函数才是真正被调用的函数return _debounce }使用 const a debounce((){console.log(asd)})button.onclick(a)button被点击的事件就被加上防抖函数了。 节流代码 限制代码访问频率如某个代码1分钟只能执行一次。 自定义 时间戳 function throttle(func, wait) {var previous 0;return function() {let now Date.now();let context this;let args arguments;if (now - previous wait) {func.apply(context, args);previous now;}} } const throttledFn throttle(count,1000);定时器 function throttle(func, wait) {let timeout;return function() {let context this;let args arguments;if (!timeout) {timeout setTimeout(() {timeout null;func.apply(context, args)}, wait)}} }复杂实现 // leading参数用来控制是否第一次立即执行默认为true function throttle(fn, interval, leading true) {//该变量用于记录上一次函数的执行事件let lastTime 0// 内部的控制是否立即执行的变量let isLeading true// time 保存定时器的idlet time nullconst _throttle function(...args) {// 获取当前时间const nowTime new Date().getTime()// 第一次不需要立即执行if (!leading isLeading) {// 将lastTime设置为nowTime这样就不会导致第一次时remainTime大于intervallastTime nowTime// 将isLeading设置为false这样就才不会对后续的lastTime产生影响。isLeading false}// cd剩余时间const remainTime nowTime - lastTime// 如果剩余时间大于间隔时间也就是说可以再次执行函数if (remainTime - interval 0) {fn.apply(this, args)// 将上一次函数执行的时间设置为nowTime这样下次才能重新进入cdlastTime nowTime}if (remainTime interval) {// 判断是否存在定时器如果存在则取消掉if (time) clearTimeout(time)// 设置定时器time setTimeout(() {// 由于该定时器会在没有事件触发的interval时间间隔后才会执行也就是说一轮事件// 执行已经结束使用需要将isLeading复原这样下一轮事件的第一次事件就不会立即执行了。isLeading true}, interval)}}// 返回_throttle函数return _throttle }vueuse中工具类 const throttledFn useThrottleFn(() {// 操作1s只能执行一次 }, 1000)定时任务 手动实现 setInterval(() {handleQuery();}, 1000 * 60 * 5);setInterval不晓得为啥有时候有bug // 定时器查询 function handleQueryByInterval() {setTimeout(() {handleQuery();handleQueryByInterval();}, 1000 * 60 * 5); }工具类useInterval useInterval(() {handleQuery();}, 1000);
http://wiki.neutronadmin.com/news/200082/

相关文章:

  • 我们做的网站是优化型结构网络科技服务有限公司
  • 做网站有什么软件吗wix如何做网站
  • 品牌网站建设有哪两种模式企业设计网站
  • 网站建设应注意什么问题静态网页模板 网站模板
  • 单页成品网站网站站内消息设计方案
  • 如何安装网站模板wordpress的后台地址打不开
  • 怎么访问被禁止的网站网站建设的详细步骤
  • 江西省建设工程协会网站查询苏州市市政建设管理处网站
  • 网站黑色代码最专业的网站建设推广
  • 快速建设企业网站做网站 用哪种
  • 广州网站建设定制设计华为快速建站
  • 杭州微信网站开发自建网站推广
  • 企业网站seo优化方案聊城网站建设开发
  • 卖磁铁的网站怎么做的河北省建设局材料备案网站
  • 网站建设易客重庆企业网站建设解决方案
  • 中小企业网上申报系统性价比高seo的排名优化
  • 北京网站seo设计旅游网站怎么用dw做
  • 自动生成logo南通关键词优化软件
  • 山东省城市建设管理协会网站织梦网站怎么把index.html去掉
  • 苏州网站建设比较好的公司海宁做网站的公司
  • 家庭宽带 做网站易优cms仿站教程
  • 晚上奖励自己的网站推荐网页广告设计培训
  • 网站开发软件技术专业好吗新手学计算机编程入门
  • 南宁网站开发建设怎么做自己的设计网站
  • 梅州建站塔山双喜wordpress免费资源网
  • 网站用户体验是什么自己制作手机app
  • 根据网站软件做报告镇江网站建设方案
  • 诚通凯胜生态建设有限公司网站ui界面设计培训课程
  • 水网站源码Wordpress不能修改导航名称
  • 做视频导航网站学生网页设计主题