2012-01-04 12 views
1

このようなインクリメンタを作成しようとしています:http://www.usagain.com/しかし、私は明らかにそれを動作させるコードがありません。これを数えなくてはいけないことは何ですか?ここに私の非常によく似たコードです:Jquery、Ajax、PHP番号インクリメンタ

<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

プリローダーを意味していますか?それは一般的にはフラッシュです。私はこれに一度似た質問をしました。http://stackoverflow.com/questions/7049303/show-progress-for-php-long-script –

+0

プリローダーが好きではありません。私は数字を増やそうとしているが、常にそれを追跡している。誰かがページを見ているときには、数字を増やしたいと思います。私はそれでも問題の束を持っている:/ –

+0

ちょうど興味のないなぜあなたは数をつかむために正規表現を使用していますか?ちょうどそれをスパンに入れて、ユニークなID /クラスを与えてください – jcuenod

答えて

0

updateNumを一度実行するコードが設計されているように見えるので、ページが読み込まれてから1秒後に番号が更新され、その後は更新されません。

x秒ごとに関数を呼び出すことができるsetIntervalを見てみましょう。これはあなたのためのトリックです。

あなたが考えておきたいことは、最適化です。ここでは、PHPでページを読み込む前に(例として)何をするのでしょうか?カウンタが30-60秒の間に上がっている平均量をとり、次にjavascriptでその量だけカウンタを更新します設定された時間...多分5分? 5分後、ajaxリクエストを再度実行して最新の平均値を取得し、JavaScriptを使用して次の5分間カウンタを更新します。

多くの人がサイトを閲覧している場合は、1秒ごとにカウンタを呼び出すサーバーを停止させることができます。

+0

私はsetIntervalが信頼できないと言われましたが、setTimeoutは良くなっていましたが、私が誤解したのは初めてです:S - JSを介してすべてそれを行うことができますが、私は番号を追跡する必要があります:/私は上記のリンク先のWebサイトがそれを行うことができますそれは問題ではありません。ありがとう!私はそれと一緒に遊んでいきます。 –