当前位置:首页 > 程序心得 > 正文内容

window onresize事件注意一下效率问题

admin6年前 (2019-06-11)程序心得1531

今天在写 vue 项目的时候, echarts 图标需要随着 窗口变化适配,在使用 onresize 的时候,延时器代码不会写了,这里再记录下

代码如下

	mounted() {
	      // 添加 echarts 窗口变化 事件
	      // side-menu 变化 ,直接通知吧(这个影响不大,有需要再添加吧)
	      window.addEventListener('resize', this.echartsResize);
	    },
	     methods: {
	      echartsResize() {
	        if(this.timer) clearTimeout(this.timer);
	        this.timer = setTimeout(() => { // 只执行最后一个定时器的 结果
	          this.$refs[this.activeName].echartsResize();
	         }, 300); // 推迟 300 ms 在执行resize 效果 
	      }
	    },
	    beforeDestroy() {
	      window.removeEventListener("resize", this.echartsResize); // 通过有名函数 解除事件订阅
	    }

注意点:

  1. 添加延时器 目的在于onresize 的过程中,只会执行最后一个延时器的代码,即代码只会执行一次

  2. 这样做到好处,可以高效率,毕竟dom 重排代价很高的。

  3. 这里还在 组件销毁的时候去除全局 订阅的事件(这都是细节的问题)


分享到:

扫描二维码推送至手机访问。

版权声明:本文由云河空间发布,如需转载请注明出处。

本文链接:https://yuyunhe.cn/index.php/post/293.html

分享给朋友:

“window onresize事件注意一下效率问题” 的相关文章

jQuery ajax使用$(this).parent()无效解决方法

本文章来给各位同学介绍一下关于jQuery ajax使用$(this).parent()无效解决方法,希望此方法对各位同学人有所帮助哦html 代码如下复制代码<p class="item"><input type="text" n...

MySQL获得当前日期时间\时间戳函数

MySQL获得当前日期时间\时间戳函数 1.1 获得当前日期+时间(date + time)函数:now()mysql> select now();+———————+| now() |+———————+| 2008-08-08 22:20:46 |+———————+除了 now()...

JQ 获取验证码倒计时方法

JQ 获取验证码倒计时方法

html: <a href="javascript:;" class="weui_btn weui_btn_mini weui_btn_default"  id="show-not...

Jq 网页点击图片放大效果(单张)

Jq 网页点击图片放大效果(单张)

首先引入jq文件:  <script src="http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></script>$(function(){     $...

使用FastClick消除IOS点击延时提高程序的运行效率

FastClick是一个非常方便的库,在移动浏览器上发生介于轻敲及点击之间的指令时,能够让你摆脱300毫秒的延迟。FastClick可以让你的应用程序更加灵敏迅捷。支持各种移动浏览器,比如Safari、Chrome、Opera等。FastClick 是一个简单,易于使用的JS库用于消除在移动浏览器上...

ios5的safari浏览器的电话号码识别功能的禁用

更详细的apple官方文档: https://developer.apple.com/library/safari/#featuredarticles/iPhoneURLScheme_Reference/Articles/PhoneLinks.html在编写 HTML 时,有一个 meta...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。