保持不同用户的反价值

Keep counter value across different users

我正在制作一个计算作业量的网站,但我很难在不同的电脑上存储计数器值,因为我使用的是本地存储,它只存储在浏览器存储中.有没有办法通过互联网 "save" 价值并从任何电脑访问它?

您可以将计数器保存在文件中。您需要为此使用服务器端语言,这里有一个 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;

我围绕 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
});

还有一个简单的计数示例 -> http://jsfiddle.net/dcp6e0g0/