开发者社区> 问答> 正文

Javascript setInterval 导致页面内存急剧增长

作为一个Web前端开发小白的我,今天在写一个管理后端数据库的简单页面的时候遇到了一个棘手的问题.

我想在页面添加一个定时检查输入的指令是否有错的功能.所以在页面的body内的script内添加了这样一行代码:

setInterval(updateFormat,1000);
//其中的updateFormat是我定义在同一个script标签下的用JQuery更新一个div内的提示内容的函数
    结果我在测试页面大约2min内,我用Chrome自带的任务管理器查看时发现这个页面的"内存"那一栏已经以每秒2~3mb的速度急剧增长.
    然后,我又修改了一下代码:

setInterval("updateFormat()",1000); <span style="font-size:9pt;line-height:1.5;">//其中的updateFormat是我定义在同一个script标签下的用JQuery更新一个div内的提示内容的函数</span>
    结果还是发现页面的内存占用还是以200~300kb的速度增长.
    再贴出updateFormat中的代码缩减版给你们看看:
function updateFormat(){
    $('#check_input pre').text($('#input_content').val());
}<span></span>
    所以求大神指点指点.为什么加了一个 setInterval就会使得页面内存持续上升(而且很多在线聊天的网站应该也用了 setInterval的呀,为什么它们的就不会出现这种事),谢谢!

展开
收起
a123456678 2016-07-15 17:35:45 3041 0
1 条回答
写回答
取消 提交回答
  • function time(f, time) {
        return function walk() {
            setTimeout(function () {
                f();
                walk(); 
            }, time);
        };
    }
     
    time(updateFormat, 1000)();
    2019-07-17 19:57:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载