首页 > web前端 > js教程 > 正文

浅谈JavaScript函数节流_基础知识

php中文网
发布: 2016-05-16 16:28:09
原创
1883人浏览过

浏览器中某些计算和处理要比其他的昂贵的多。例如,DOM操作比起非DOM交互需要更多的内存和CPU时间。连续尝试进行过多的DOM相关操作可能会导致 浏览器挂起,有时候甚至会崩溃。尤其在IE中使用onresize事件处理程序的时候容易发生,当调整浏览器大小的时候,该事件连续触发。在 onresize事件处理程序内部如果尝试进行DOM操作,其高频率的更改可能会让浏览器崩溃。
     函数节流背后的基本思想是,某些代码不可以在没有间断的情况连续重复执行。第一次调用函数,创建一个定时器,在指定的时间间隔之后运行代码。当第二次调用 该函数时,它会清除前一次的定时器并设置另一个。如果前一个定时器已经执行过了,这个操作就没有任何意义。然而,如果前一个定时器尚未执行,其实就是将其 替换为一个新的定时器。目的是只有在执行函数的请求停止了一段时间之后才执行。
      

复制代码 代码如下:

 function throttle ( method , context ){
                clearTimeout ( method.tId );
                method.tId = setTimeout ( function () {
                     method.call ( context );
                 } , 100);
          }

应用举例:
     假设有一个

元素需要保持它的高度始终等同于宽度,可作如下编码:
       
复制代码 代码如下:

 function resizeDiv(){
                var div = document.getElementById("mydiv");
                div.style.height = div.offsetWidth + "px";
            }
           window.onresize = function(){
                throttle(resizeDiv);
            }

    这里,调整大小的功能被放入了一个叫做resizediv的单独函数中,然后onresize事件处理程序调用throttle()并传入 resizediv函数,而不是直接调用resizediv()。多数情况下,用户是感觉不到变化的,虽然给浏览器节省的计算可能非常大。

Voicv
Voicv

克隆你的声音,就像Ctrl+C, Ctrl+V一样

Voicv 165
查看详情 Voicv
相关标签:
java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号