0

我有一个 JS 游戏(在 HTML 页面上),我想在每次有人玩的时候创建一个日志文件,这样我就可以记录他们的分数和他们玩的时间。

我知道 JS 是一种客户端语言,那么我该如何将文件保存到服务器呢?是否可以在我的 JS 中插入一些 .php 来完成这样的事情?或者,还有更好的方法?

谢谢!

4

3 回答 3

5

为了向服务器发送数据,您必须发出 HTTP 请求。(在不离开页面的情况下从 JavaScript 发出 HTTP 请求称为Ajax)。对于这种情况,通常使用XMLHttpRequest 对象来完成。然后,您需要一个服务器端程序(可以用 PHP 编写)来处理请求并保存数据。为了避免担心文件锁定等问题,您应该考虑使用数据库而不是平面文件。

于 2012-10-14T20:53:04.030 回答
2

我在我的项目中或多或少是这样做的(这里是基础知识,当然更高级,具体取决于项目、错误检查等)

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 来做一个日志系统是很容易的,而且在里面实现几乎任何东西都不难

于 2012-10-14T21:17:17.497 回答
1

您很可能必须对服务器进行 AJAX 调用。从那里,您的 PHP 代码或您想要使用的任何服务器端脚本语言将负责创建日志文件。

于 2012-10-14T20:53:20.120 回答