Php 正在进行页面加载时设置cookie
在我的项目中,我创建了一个excel文件,并提供给用户通过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)之前单击导出按钮时显示加载程序窗口,为了关闭
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表选项