【发布时间】:2016-01-01 16:02:15
【问题描述】:
我有一个调用 AJAX 脚本的网页 - ajax.php。我正在使用 JQuery 发送 AJAX 请求。
脚本ajax.php 通过$_REQUEST 接收一些参数,基于它开始处理。该处理涉及多个步骤,在每个步骤结束时,我想将一些反馈发送回页面 - 例如:
- 第 1 步完成
- 第 2 步完成
- ....
所有步骤完成后 - 脚本 ajax.php 将输出一个 TXT 文件,我通过以下方式输出:
header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="output.txt"');
我的问题是:
我在页面中有一个div,我想向用户显示步骤1 已完成,步骤2 已完成……如果我使用JQuery.ajax(),.done 函数会被调用多次吗?如果不是,最好的处理方法是什么?我可以在 PHP 中使用ob_implicit_flush 发送“步骤 x 完成”消息吗?
最后,我将如何处理 .txt 文件的输出,以便用户的浏览器下载它?我不想将文件保存在服务器上,然后陷入服务器磁盘空间的麻烦,删除的 cron 作业等。
我可以选择执行多个 AJAX 请求 - 但我又不想这样做,因为这会使我的代码逻辑非常复杂,我必须在 $_SESSION 中保存大量数据才能在各处可见requests 这又是我不想做的事情。
【问题讨论】:
标签: javascript php jquery ajax