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 调用来访问脚本,它就可以为您更新计数器(在文件或数据库中)。您不想在客户端设置“通用”计数器值。

您只需要客户端从服务器中提取更新的计数(服务器在收到您的请求时将该计数增加一)。如果您期望大量流量,您可能不希望该计数器在平面文件中,而是在数据库或内存缓存中。

于 2012-09-13T15:06:54.347 回答
1

需要在服务器上进行更改。如果您希望服务器的记录更新,服务器需要这样做(尽管使用$.postor $.postJSON),但您需要:

  1. 为客户抓住价值
  2. 客户端进行更新
  3. 客户端将更改的值重新提交给服务器
  4. 服务器更新值。

除非您在服务器上有逻辑(即counter.json不仅仅是一个带有数字的文件,而是有服务器端逻辑[如 ASP、PHP 等]),否则您不会走得太远。

为了消除往返,您可以让服务器在每次 ping 时更新计数。类似(在服务器上):

  1. 获取当前计数
  2. 计数器加一
  3. 重新保存新计数
  4. 向客户端输出计数(JavaScript 现在具有该值)
于 2012-09-13T15:06:17.020 回答