jQuery resize() 和 scroll() 的优化
2016-03-14 21:23
513 查看
1、resize()
在最近的一个jQuery插件中,我使用到了jQuery中的resize()方法来检测用户调整浏览器窗口并运行相关代码。可以注意到resize window时各个浏览器的性能消耗不一。#IE、Safari、Chrome在调整窗口变化中一直在执行resize事件 #Opera则在这个过程中发生了很多次resize事件,但在结束调整时执行。 #Firefox则是只在调整结束后才执行事件。
我们想要的明显是在结束调整之后才执行事件。幸运的是我们可以通过以下几种方法来调整:
调整运行时间
创建一个在你发生调整时需要执行的任意代码的函数。使用resize()方法,你可以运行函数并给它设置一个超过时间执行,从而达到在某一段时间内执行一次函数
(function($) { var resizeTimer; function resizeFunction() { // 处理函数 }; $(window).resize(function() { clearTimeout(resizeTimer); resizeTimer = setTimeout(resizeFunction, 250);//我们可以适当调整时间间隔 }); resizeFunction();//首次运行 })(jQuery);
2、scroll()
同样的,我们对滚动监听也可以做同样的处理(function($) { var scrollTimer; function scrollFunction() { // 处理函数 }; $(window).scroll(function() { clearTimeout(scrollTimer); scrollTimer = setTimeout(scrollFunction, 250);//我们可以适当调整时间间隔 }); })(jQuery);
相关文章推荐
- 【深入浅出jQuery】源码浅析--整体架构
- 汤姆大叔的博客 JS/jQuery
- jQuery1.9+中删除了live以后的替代方法
- jQuery插件开发
- jQuery选择器总结
- jquery中构造对象的核心
- jQuery 插件为什么要return this.each()
- JQuery:选择器、动画、AJAX请求
- jquery如何获取一个select里面的所有option的值
- jquery知识小结
- Jquery 之DOM文档操作(一)
- jQuery设置checkbox全选(区别jQuery版本)
- jQuery获取Select选择的Text和 Value(转)
- ectouch 实现按需加载商品信息(Jquery 2.1.1 插件版本)
- jquery之AJAX
- jquery实现二级联动,实时查询数据库
- jquery获取复选框checkbox的值
- Jquery validate 静态方法和常用方法的使用
- [前端] jquery验证手机号、身份证号、中文名称
- HTML5开发移动web应用—JQuery Mobile(4)-事件