我正在寻找一种通过AJAX(不是通过JS框架!)来实时监控文件以进行更改的方法。如果对该文件进行了更改,我需要它来发出警告消息。我是一个完整的AJAX菜鸟,所以请保持温柔。 ; - )
编辑:让我详细解释一下目的。我正在使用我用PHP编写的聊天脚本用于网店,我想要的是来自管理模块监控聊天请求。聊天记录存储在文本文件中,如果有人启动聊天会话,则会创建新文件。如果是这种情况,我想在管理模块中实时查看。
有道理吗?
答案 0 :(得分:3)
要使用AJAX监视文件以进行更改,您可以执行以下操作。
var previous = "";
setInterval(function() {
var ajax = new XMLHttpRequest();
ajax.onreadystatechange = function() {
if (ajax.readyState == 4) {
if (ajax.responseText != previous) {
alert("file changed!");
previous = ajax.responseText;
}
}
};
ajax.open("POST", "foo.txt", true); //Use POST to avoid caching
ajax.send();
}, 1000);
我刚试过它,它运行得很好,但我仍然认为AJAX不是这里的方法。对于大文件,比较文件内容会很慢。另外,你没有提到框架,但你应该使用一个用于AJAX,只是为了处理跨浏览器的不一致。
答案 1 :(得分:0)
AJAX只是一个javascript,所以从它的定义来看,你没有任何工具可以访问文件,除非其他服务调用js / AJAX来通知这个变化。
答案 2 :(得分:0)
我最近从零开始做了这件事。
我不知道你使用PHP有多少菜鸟(这是我所知道的唯一的服务器脚本语言),但我会尽量简短,随时提出疑问。
我正在使用长轮询,其中包括(
如果您不关心文件的内容,只关心它已被更改,您可以检查上次修改时间而不是PHP脚本中的内容。
编辑:从一些评论中我看到有一些东西可以监视名为FAM的文件更改,这似乎是PHP脚本的方法