2

すべてのユーザーで同じ値になるカウンターを作成したい。

データを含むjsonファイルがあります:count = 0.

次に実行する関数を毎秒実行したい:

1.jsonファイルから値を取得する

2.カウンター値の更新

3.jsonファイルの値を変更

4.1へ

これが私が今持っているものです:

var counter = 0;
var myCounter = new flipCounter('counter', {value:counter});//initializing counter
 window.setInterval(function(){
$.getJSON('http://127.0.0.1:3000/counter.json', function(data) {1.taking the data from file
 myCounter.setValue(data.count);//2.Updating counter
 //3.here I need to change value from json file
})
}, 1000);

誰かがポイント3(jQueryからjson値を変更する方法)で私を助けることができますか?

4

2 に答える 2

2

json ファイルを変更するには、サーバー側のスクリプトが必要です。ajax 呼び出しでスクリプトをヒットするだけで、(ファイルまたは DB 内の) カウンターを更新できます。クライアントで「一般的な」カウンター値を設定したくありません。

クライアントは、更新されたカウントをサーバーからプルするだけで済みます (サーバーは、リクエストを受信したときにそのカウントを 1 つ増やします)。大量のトラフィックが予想される場合は、おそらくフラット ファイルではなく、データベースまたはメモリ内キャッシュにそのカウンターが必要です。

于 2012-09-13T15:06:54.347 に答える
1

変更はサーバー上で行う必要があります。サーバーのレコードが更新されると予想される場合、サーバーはそれを行う必要があります ($.postまたはを使用し$.postJSONますが)。ただし、次のことを行う必要があります。

  1. クライアントへの価値をつかむ
  2. クライアントが更新を行う
  3. クライアントは変更された値をサーバーに再送信します
  4. サーバーは値を更新します。

また、サーバー上にロジックがない限り (つまり、counter.json文字どおり数字が書かれたファイルではなく、サーバー側のロジック (ASP、PHP など) がある場合) を除いて、やり過ぎにはなりません。

往復をなくすために、ping を実行するたびにサーバーにカウントを更新させることができます。(サーバー上で)次のようなもの:

  1. 現在のカウントを取得する
  2. カウンターを1つ増やす
  3. 新しいカウントを再保存
  4. クライアントへの出力カウント (JavaScript が値を持つようになった場所)
于 2012-09-13T15:06:17.020 に答える