Jquery,Ajax,PHP编号增量器

时间:2012-01-04 21:16:54

标签: php javascript jquery html ajax

所以我试图制作一个类似于此的增量器:http://www.usagain.com/但我显然缺少代码才能让它工作。得到这个数字我错过了什么?这是我非常相似的代码:

<html>
<head>
<title>Recycle Counter</title>
<script language="javascript" src="../jquery1.6.js"></script>
<script type="text/javascript">
    /*function rand(from, to)
    {
       return Math.floor(Math.random() * (to - from + 1) + from); // Generates random number
    }   rand(10000, 100000);*/

    function addCommas(nStr) //http://www.mredkj.com/javascript/nfbasic.html -- Source
    {
        nStr += '';
        x = nStr.split('.');
        x1 = x[0];
        x2 = x.length > 1 ? '.' + x[1] : '';
        var rgx = /(\d+)(\d{3})/;
        while (rgx.test(x1)) {
            x1 = x1.replace(rgx, '$1' + ',' + '$2');
        }
        return x1 + x2;
    }

    $(function() {
        function updateNum(){
            $('#counter').load('test.php');
        }
        setTimeout(updateNum, 1000);
    }

</script>
<style type="text/css">
    #counterContainer{color: blue;font-family:Comic Sans MS;font-size:20px;}
    #counter{display:inline;}
</style>
</head>
<body onload="getNum()">
    <div id="counterContainer">
        Counter ::: <div id="counter">   </div>
    </div>
</body>
</html>

PHP

<?php

for(int $i = 0; $i < 100; $i++)
    echo $i;

?>

我想我需要在某个时候写一个文件,但我之前尝试过并且遇到了麻烦。这次虽然它甚至不会显示计数。建议我能做些什么?

1 个答案:

答案 0 :(得分:0)

看起来您设计了运行updateNum一次的代码,因此您的数字应在页面加载后1秒更新,之后不会更新。

你需要看一下setInterval,它可以每X秒调用一次函数,这对你来说应该有用。

您可能想要考虑的一件事是优化。这是我在加载页面之前要做的(作为示例),在PHP中,取出计数器在30-60秒的时间内上升的平均数量,然后在您的javascript中,按照该数量更新计数器一段时间...也许5分钟? 5分钟后,再次运行ajax请求以获取计数器正在上升的最新平均值,并使用javascript在接下来的5分钟内更新计数器。

你可能真的陷入每秒呼叫一个计数器的服务器,特别是如果很多人正在查看该网站。