重复页面刷新的JavaScript内存泄漏

时间:2015-04-23 21:50:41

标签: jquery html memory-leaks

我正在编写一个网页,显示独立于网站维护的MySQL数据库的统计信息。我们的想法是不断重新加载它,以便不断地对MySQL数据库进行轮询并使网站保持最新状态。我有一个php页面,它执行所有数据库轮询和逻辑显示方式或内容。用户访问的主页面具有以恒定间隔重新加载php页面的功能,从而自动刷新屏幕上的轮询。

在我编写完所有内容之后,它会在一段时间内发挥作用,然后无论使用何种浏览器,它都会在几个小时后崩溃。在chrome中,我找到了任务管理器并注意到内存在很短的时间内增加了很多。从10 mb到1 g以上需要不到一个小时的时间。我最初的想法是,php脚本中存在大量内存泄漏,可能是经常轮询MySQL数据库。为了确保我在PHP脚本中注释了所有内容,但泄漏仍然存在。它必须在我写的html和jQuery代码中。 Javascript不是我的强项,我至少可以说是新手。但我知道它有垃圾收集,所以我认为我的糟糕实现在某种程度上阻止它GCing.Can任何人都可以看到可能导致这种情况的原因? index.html如下。就像我说的那样,index.php现在是空白的,所以我看不出会产生什么影响。

<html>
<head>
    <link type="text/css" rel="stylesheet" href="style.css"/>
    <title>"Statistics</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate, max-age=-1, max-stale=0, post-check=0, pre-check=0">
    <meta http-equiv="expires" content="-1">
    <script src="./js/jquery-1.11.2.min.js"></script>
    <script src="./js/jquery-1.11.2.js"></script>
    <script>
         $(document).ready(function() {
            $("#refreshpage").load("index.php");
            var refreshId = setInterval(function() {
                $("#refreshpage").load('index.php');
                }, 5000);
            refreshId = null;
            $("#refreshpage").unload();
            $.ajaxSetup({ cache: false });
        });
        </script>
        <body class=bground>
            <center>
                <div id="refreshpage"></div>
            </center>
            <img id="logoShift" src="logo.png"/>
        </body>
</head>

0 个答案:

没有答案