Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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
Php 正在进行页面加载时设置cookie_Php_Jquery_Jquery Plugins - Fatal编程技术网

Php 正在进行页面加载时设置cookie

Php 正在进行页面加载时设置cookie,php,jquery,jquery-plugins,Php,Jquery,Jquery Plugins,在我的项目中,我创建了一个excel文件,并提供给用户通过 header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 代码。我正在通过$(location.attr('href','####')触发文件生成代码;JS中的代码,以便调用文件导出页面,并在生成文件下载窗口后显示。为了显示正在进行的工作,我在调用$(location)之前单击导出按钮时显示加载程序窗口,为了关闭

在我的项目中,我创建了一个excel文件,并提供给用户通过

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
代码。我正在通过$(location.attr('href','####')触发文件生成代码;JS中的代码,以便调用文件导出页面,并在生成文件下载窗口后显示。为了显示正在进行的工作,我在调用$(location)之前单击导出按钮时显示加载程序窗口,为了关闭此窗口,我使用Jquery cookie库(实际检查文件生成何时完成以及下载窗口何时出现) 为此,我已提到

Url这种技术解决了我的问题,我可以检查进度何时完成并删除加载程序窗口

现在我还想显示文件完成的进度。我的excel文件生成大约500行。所以它需要时间来生成,我试着在cookie中写进度,比如写100行后写25%,写200行后写50%,并试着在JS代码中检查cookie值

fileProgress = window.setInterval(function () {
    var cookieValue = $.cookie('fileProgressToken');
    alert(cookieValue)
}, 1000);
但它不起作用, 我发现php在页面进度完成后(即当所有文件生成过程完成时)设置cookie值,并将该值设置为100,我无法在1秒后检查进度


我应该怎么做才能做到这一点,是否有可能或任何简单的替代方法在传输任何数据之前发送一次头,一旦传输数据,头就消失了,不能再设置cookie,除非您使用ajax调用,cookie由JS而不是phpShort-answer更新-您不能。您需要发送更新,而将头写入cookie的想法将无法奏效,因为PHP不会以块的形式响应HTTP请求,当它们进入时,您可以访问这些请求(其他任何语言也不会这样做)。您需要异步生成报告,并在db表或smthing中更新进度,而不是Cookies谢谢大家,我将尝试db表选项