将javascript vars保存到服务器上

时间:2016-06-21 19:44:09

标签: javascript database-connection

我对javascript很新,目前正在寻找一种管理简单在线游戏的高分系统的方法。最初的计划只是将更新的变量存储到服务器上并根据请求检索它们,例如

var score = 0;
var level = 0;
//javascript game code to update score and level
//code to store vars into database

经过一些研究,似乎it is not recommended for javascript to directly communicate with the server-side并且应该通过某种服务器端脚本语言(例如PHP)进行通信,can probably be done so using a form

现在我对我应该做的事情感到很困惑,因为我想做的就是存储一些已经创建的变量,而不必创建表单。我也考虑过saving the variables to a text file,但这似乎不是一个适合在线分数系统的解决方案。

最重要的是,许多其他关键词开始涌现(例如AJAX,jQuery,nodeJS,JSON,解析......等等),我不太确定它们是否与我当前的问题相关。

最简单的方法是什么(在线存储变量以便根据要求检索)?

3 个答案:

答案 0 :(得分:1)

是的,您需要使用PHP或类似设置为此设置服务器。如果要使用服务器端javascript,可以查看如何设置node.js服务器

答案 1 :(得分:1)

不仅建议使用服务器端代码。这是唯一的方法。

首先设置服务器端。然后,编写你的javascript来对它进行AJAX调用。

完整的解释是这样的......你的PHP(或ASP)页面可以与数据库通信,并做任何事情 - 读取数据,写入数据,更新记录。完成后,它会给出结果。每次与页面通信时都会发生这种情况。

服务器不关心你对输出的处理方式。它就是这样。 AJAX是一种使用JavaScript联系该PHP页面并等待结果的方法。通过这种方式,您可以联系该页面,获取结果,而无需刷新当前页面。

这是一种非常广泛使用的方法。

以简单的方式让您了解这是什么样的:

function countClick(id,host) {
      var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function() {
        if (xhttp.readyState == 4 && xhttp.status == 200) {
         //document.getElementById("demo").innerHTML = xhttp.responseText;
        }
      };
      xhttp.open("GET", "/includes/appCounter.php?appid="+ id +"&hostIs="+ host, true);
      xhttp.send();
    }

这样做的是,当触发该函数时,它会调用PHP脚本并传入2个变量的值(appID和whichButton)。 PHP脚本只是获取这些值并使用它们(在数据库中增加一个计数器)。

就是这样。数据库使用新值更新,用户甚至不知道它发生了。

答案 2 :(得分:1)

我不推荐它,因为安全性差,但是如果数据库有HTTP API(很多noSQL和一些SQL数据库都有),它是可能的。通过http api支持,您可以直接向数据库发送Ajax请求,以保存和接收数据。

例如:CouchDBOrientDB