Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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读取ob_flush()_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 无法通过ajax读取ob_flush()

Javascript 无法通过ajax读取ob_flush(),javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有一段代码,每当我单击按钮时,我都会对某个文件发出AJAX请求,请求如下: $("#syncDNS").click(function(){ $('#status').html(""); $('#status').addClass('loading'); function updateProgress(){ $.ajax({ type: 'POST', url: 'index.php',

我有一段代码,每当我单击按钮时,我都会对某个文件发出AJAX请求,请求如下:

$("#syncDNS").click(function(){
    $('#status').html("");
    $('#status').addClass('loading');

    function updateProgress(){
        $.ajax({
            type: 'POST',
            url: 'index.php',
            success: function(data){
                $('#status').html(data);
            }
        });
    }

    $.ajax({
        url: 'index.php?action=sync',
        success: function (response) {
            clearInterval(loop);
            $('#status').removeClass('loading');
            if(response){
                $('#status').addClass('alert alert-warning').html("<h4>Aviso</h4>" + response);
            }else{
                $('#status').addClass('alert alert-success').html("<h4>Sucesso</h4>" + "DNS sincronizado com sucesso!");
            }
        }
    });

    updateProgress();
    var loop = setInterval(function () {
        updateProgress(); 
    }, 1000);
});
在索引中,我包含了我的控制文件并调用了PHP函数,该PHP函数是一个循环,我在其中向数据库添加了一些条目:

public function syncDNS(){

...

   foreach($result as $row) {
               $current ++;
               echo($current);

   ...

   }

...

return $string;
}
问题是,请求按预期工作,PHP函数也在做它的工作,我就是不能在syncDNS函数中听到回声,为什么?我还尝试使用ob_start()、ob_flush()、flush(),但没有任何效果。
据我所知,控制文件包含在索引中,因此任何在索引中回响的内容都应该可以通过AJAX POST请求获得。

在浏览器中调用php文件时,您是否看到回响?否,无论是在请求的响应中还是在页面中。然后将AJAX放在一边,集中精力调试php部分。$result是否包含任何行并执行foreach循环?是否涉及PHP会话,使用文件系统作为会话存储?那么这可能是会话文件写锁阻止并发请求的“典型”情况,解决方案是在长时间运行的脚本中尽快调用
session\u write\u close
,当我返回最后一个变量时,所有的回声都会随之返回。我没有使用PHP会话。当在浏览器中调用PHP文件时,您是否看到echos?没有,无论是在请求的响应中还是在页面中。然后将ajax放在一边,专注于调试PHP部分。$result是否包含任何行并执行foreach循环?是否涉及PHP会话,使用文件系统作为会话存储?那么这可能是会话文件写锁阻止并发请求的“典型”情况,解决方案是在长时间运行的脚本中尽快调用
session\u write\u close
,当我返回最后一个变量时,所有的回声都会随之返回。我没有使用PHP会话。
public function syncDNS(){

...

   foreach($result as $row) {
               $current ++;
               echo($current);

   ...

   }

...

return $string;
}