我有一个 JS 游戏(在 HTML 页面上),我想在每次有人玩的时候创建一个日志文件,这样我就可以记录他们的分数和他们玩的时间。
我知道 JS 是一种客户端语言,那么我该如何将文件保存到服务器呢?是否可以在我的 JS 中插入一些 .php 来完成这样的事情?或者,还有更好的方法?
谢谢!
我有一个 JS 游戏(在 HTML 页面上),我想在每次有人玩的时候创建一个日志文件,这样我就可以记录他们的分数和他们玩的时间。
我知道 JS 是一种客户端语言,那么我该如何将文件保存到服务器呢?是否可以在我的 JS 中插入一些 .php 来完成这样的事情?或者,还有更好的方法?
谢谢!
为了向服务器发送数据,您必须发出 HTTP 请求。(在不离开页面的情况下从 JavaScript 发出 HTTP 请求称为Ajax)。对于这种情况,通常使用XMLHttpRequest 对象来完成。然后,您需要一个服务器端程序(可以用 PHP 编写)来处理请求并保存数据。为了避免担心文件锁定等问题,您应该考虑使用数据库而不是平面文件。
我在我的项目中或多或少是这样做的(这里是基础知识,当然更高级,具体取决于项目、错误检查等)
javascript
function doLog(somedata) {
$.ajax({
url: "ajax_log.php",
//data, an url-like string for easy access serverside
data : somedata,
cache: false,
async: true,
type: 'post',
timeout : 5000
});
}
服务器端大多数时候我使用一个类,该类将somedata
中的每个元素作为行插入一些日志表中,例如log
具有 id 和时间戳的表logParams
,以及具有 id 和参数/值的表。但这是针对统计数据的。其他时候只需要在文件中记录一些数据
<?
$file="log.txt";
$text=serialize($_POST);
$fh = fopen($file, 'a') or die();
fwrite($fh, $text."\n");
fclose($fh);
}
?>
所以用 JS 来做一个日志系统是很容易的,而且在里面实现几乎任何东西都不难
您很可能必须对服务器进行 AJAX 调用。从那里,您的 PHP 代码或您想要使用的任何服务器端脚本语言将负责创建日志文件。