保持不同用户的计数器价值

时间:2015-12-11 21:44:18

标签: javascript html local-storage

我正在建立一个计算家庭作业数量的网站,但是我很难将计数器值存储在不同的PC上,因为我使用的是本地存储,它只存储在浏览器存储中。有没有办法通过互联网“保存”价值并从任何PC访问它?

2 个答案:

答案 0 :(得分:2)

您可以将计数器保存在文件中。你需要使用服务器端语言,这是一个PHP示例。

<?php
$file = fopen("counter.txt", "r+");
flock($file, LOCK_EX); // Block other users
$counter = trim(fgets($file));
$counter++;
rewind($file); // Go back to beginning of the file
fwrite($file, "$counter\n");
fclose($file); // This will unlock the file, too

echo $counter;

答案 1 :(得分:1)

我在myjson.com上做了一个小包装,可用于简单存储。

var store = {
    create: function(params) {
        var def = $.Deferred();
        $.ajax({
            url: "https://api.myjson.com/bins",
            type: "POST",
            data: JSON.stringify(params),
            contentType: "application/json; charset=utf-8",
            dataType: "json"
        }).done(function(data) {
            def.resolve(data.uri.split('/').pop())
        });
        return def.promise();
    },
    update: function(id, params) {
        return $.ajax({
            url: "https://api.myjson.com/bins/" + id,
            type: "PUT",
            data: JSON.stringify(params),
            contentType: "application/json; charset=utf-8",
            dataType: "json"
        });
    },
    get: function(id) {
        return $.get("https://api.myjson.com/bins/" + id);
    }
}

首先你创建一个实例,并获得一个ID,你只需要这样做一次来设置它并在某处存储数据

store.create({users : 0}).done(function(id) {
    console.log(id);
});

确保您保存ID,因为稍后您将使用它来更新并从您刚创建的实例中获取数据。
请注意传入的对象,即我们正在保存的数据,以后可以更新。

现在要获取数据,你只需要

store.get(':id').done(function(data) {
    console.log(data); // the data you've stored
});

并更新你要做的数据

store.update('4iln9', {users : 2}).done(function(data) {
    console.log(data); // returns the updated data
});

快速计算一个例子 - &gt;的 http://jsfiddle.net/dcp6e0g0/