繁体   English   中英

通过javascript保存文件(到服务器)

[英]Saving a file (to server) via javascript

我有一个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的每个元素作为行插入某些日志表中,例如,具有id和timestamp的表log ,以及具有id和param / value的表logParams 但这是从统计学上来说的。 有时只需要在文件中记录一些数据

<?
$file="log.txt";
$text=serialize($_POST); 
$fh = fopen($file, 'a') or die();
    fwrite($fh, $text."\n");
    fclose($fh);
}
?>

因此,使日志系统由JS执行非常容易,并且几乎不难实现其中的任何内容

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM