有没有办法返回对AJAX调用的响应并保持执行活动。
文件执行需要更长的时间,这会延迟AJAX调用的响应。我们可以先将输出返回给AjAX,然后再处理脚本其余部分的执行。
答案 0 :(得分:1)
是的,有一些方法。所有这些都意味着在初始输出发生后无法输出错误。
Content-Length: xxx
和Connection: close
:这意味着知道(或测量)响应的长度(以字节为单位)。为此,您需要使用输出缓冲区来捕获输出的所有内容。
将内容放在变量中,您可以设置标题,指定content-length
和Connection: close
,然后刷新所述内容(以ob_flush_end()
+ flush()
的奇怪组合)
您可以注册要在脚本末尾运行的自定义函数/方法。如果您可以设计逻辑/应用程序,以便可以在关闭功能中阻塞所有必需的功能,那么这是更简单的方法。
这有几个缺陷 - 无法使用在调用shutdown函数之前构造的对象(它们的析构函数现在已被调用) - 因此您的应用程序逻辑需要初始化或重新初始化对象。