Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax Php从服务器获取文件,如何检测文件是否打开_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript Ajax Php从服务器获取文件,如何检测文件是否打开

Javascript Ajax Php从服务器获取文件,如何检测文件是否打开,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,有这样的情况。 我在服务器中有许多文件(数据)。我使用Ajax和php作为客户端浏览器从服务器获取数据 当一个人打开一个网站并从服务器访问一个文件时,同时,如果另一个人(用户)打开这个网站,我想找到一种方法来检测该文件是否打开,如果是这样,我可以加载另一个文件或只是阻止这个用户 我怎样才能做到这一点,任何建议都是感激的,谢谢你的时间 Ajax获取文件 load: function (url) { var _this = this; $.ajax({

有这样的情况。 我在服务器中有许多文件(数据)。我使用
Ajax
php
作为
客户端浏览器
从服务器获取数据

当一个人打开一个网站并从服务器访问一个文件时,同时,如果另一个人(用户)打开这个网站,我想找到一种方法来检测该文件是否打开,如果是这样,我可以加载另一个文件或只是阻止这个用户

我怎样才能做到这一点,任何建议都是感激的,谢谢你的时间

Ajax获取文件

load: function (url) {
        var _this = this;
        $.ajax({
            type: "GET",
            url: url,
            dataType: "text",
            success: function (json) {
                if (typeof json == 'string' || json instanceof String) {
                    json = JSON.parse(json);
                    _this.parse(json);
                }
            }
        });
    },

您可以使用全局变量:

<?php
if($_GLOBAL["locked"]) {
     header("HTTP/1.0 503 Service Unavailable");
     exit(0);
} else {
     $_GLOBAL["locked"]=true;
     //send file
     $_GLOBAL["locked"]=false;
     exit(0);
}
?>


变量“locked”将在所有php文件中保持不变。

可能重复@Siva.G否,这是不同的。实际上,我使用ajax获取文件。如何使用flock?他是用php打开文件的,staus是用php控制的。@yongnan php实际上并不关心/没有办法知道调用是ajax还是正常的;它们都是http请求,将以相同的方式处理。因此,它几乎是重复的:)有一种常见的非标准方法来识别ajax请求。许多JavaScript-ajax库都设置了http头:
X-request-With:XMLHttpRequest
。这方面没有国际标准,但这似乎是一个被广泛使用的惯例。谢谢,对不起,我错了。也许我没有很清楚地解释我的问题。所以如果我用羊群。当一个人打开网站时,他从
php
获取数据,
php
有一个独占锁和一个释放锁。那么在加载数据后,锁是否被释放?所以当另一个人来的时候,他也可以打开文件,对吗?因为加载完数据后,锁被释放了。谢谢,我仍然不知道如何解决这个问题。因为在发送文件后,锁被释放,所以其他人可以评估。信息技术实际上,第一个人可以在点击按钮后写回数据(使用ajax和php),此时他可以释放锁。可能吗?另一件事是我想锁定某个文件,如果有新人来,我可以给他另一个文件,如果他发现文件正在使用。