2012-09-13 60 views
2

我想製作計數器,所有用戶的值都是一樣的。是否有可能使用jQuery在文件中更改json值?

我有JSON文件,其中包含數據:計數= 0

我想運行函數每一秒它會做下一個:

從JSON文件

1.Get值

2在JSON文件.Update計數器值

3.Change值

4.Go 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值)?

+1

您需要一些服務器端腳本來爲您修改文件。你有一些服務器端腳本? – Ryan

+0

那麼,你想寫'counter.json'文件?如果是這樣,你將無法用javascript來做到這一點。您將需要一些服務器端語言來處理該問題。所以你可以基本上發佈你更新的json,並讓服務器代碼使用它來寫入json文件。 – lbstr

回答

2

你需要一些服務器端腳本來爲你修改json文件。你只需用ajax調用腳本就可以了,它可以爲你更新計數器(文件或數據庫)。您不想在客戶端設置「通用」計數器值。

您將需要客戶端做任何事情比從服務器(服務器收到您的請求時增加了一個計數)更多的計數。如果您期望有很多流量,那麼您可能不希望該計數器位於平面文件中,而是需要數據庫或內存緩存。

+0

我的櫃檯不會計算用戶數量。它只會運行。我應該使用數據庫嗎? – MID

1

需要在服務器上進行更改。如果你希望服務器的記錄更新,服務器需要做的(雖然使用$.post$.postJSON),但你需要:

  1. 抓住價值給客戶
  2. 客戶端發出更新
  3. 客戶端重新 - 將提交的值更改爲服務器
  4. 服務器更新值。

除非你在服務器上的邏輯(即counter.json不僅僅是字面上就可以了一些文件,但服務器端邏輯[如ASP,PHP等])你不會變得太遠。

爲了消除往返行程,您可以讓服務器在每次ping它時更新計數。喜歡的東西(在服務器上):

  1. 抓住當前計數
  2. 增加計數器由一個
  3. 重新保存新的計
  4. 輸出計數到客戶端(即JavaScript現在擁有價值)
相關問題