所以我试图制作一个类似于此的增量器: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;
?>
我想我需要在某个时候写一个文件,但我之前尝试过并且遇到了麻烦。这次虽然它甚至不会显示计数。建议我能做些什么?
答案 0 :(得分:0)
看起来您设计了运行updateNum一次的代码,因此您的数字应在页面加载后1秒更新,之后不会更新。
你需要看一下setInterval,它可以每X秒调用一次函数,这对你来说应该有用。
您可能想要考虑的一件事是优化。这是我在加载页面之前要做的(作为示例),在PHP中,取出计数器在30-60秒的时间内上升的平均数量,然后在您的javascript中,按照该数量更新计数器一段时间...也许5分钟? 5分钟后,再次运行ajax请求以获取计数器正在上升的最新平均值,并使用javascript在接下来的5分钟内更新计数器。
你可能真的陷入每秒呼叫一个计数器的服务器,特别是如果很多人正在查看该网站。