Php $\会话设置将等待脚本结束
我想要的:在脚本的前5秒,$\u会话变量应等于“阶段1”,然后应更改为“阶段2” 我得到的:在5秒结束之前,$\u会话变量根本没有设置,此时它被设置为“阶段1”,并立即设置为“阶段2” 我做错了什么 (我需要这个代码概念,以便能够使用AJAX在另一个页面上获取$\u SESSION变量,以便实时跟踪长PHP脚本的进度。)Php $\会话设置将等待脚本结束,php,global-variables,session-variables,Php,Global Variables,Session Variables,我想要的:在脚本的前5秒,$\u会话变量应等于“阶段1”,然后应更改为“阶段2” 我得到的:在5秒结束之前,$\u会话变量根本没有设置,此时它被设置为“阶段1”,并立即设置为“阶段2” 我做错了什么 (我需要这个代码概念,以便能够使用AJAX在另一个页面上获取$\u SESSION变量,以便实时跟踪长PHP脚本的进度。) 编辑:我想我意识到了问题所在:当服务器忙于在一个页面中调用睡眠时,服务器会“挂起”,直到脚本完成。因此,当尝试在另一个页面上检索$\u会话['variable']时,该页面只
编辑:我想我意识到了问题所在:当服务器忙于在一个页面中调用
睡眠时,服务器会“挂起”,直到脚本完成。因此,当尝试在另一个页面上检索$\u会话['variable']
时,该页面只需等待(连接…)直到第一个页面完成其睡眠
,然后服务器才会将第二个页面发送到浏览器
我需要升级到更好的服务器吗?(我目前使用的是1和1最便宜的托管计划)我在另一篇文章中看到了一些东西,也许这对你有用
尝试添加设置时间限制(0)代码>位于文档顶部。机会是
它正在达到“最大执行时间”,并导致脚本
终止
我在另一篇文章中看到了一些东西,也许这对你来说很有用
尝试添加设置时间限制(0)代码>位于文档顶部。机会是
它正在达到“最大执行时间”,并导致脚本
终止
你必须使用PHP吗?或者你也可以使用Javascript?我测试了这个,我的脚本等待了5秒钟echo
输出$\u会话['variable']
和date('h:i:s')
的值,查看阶段1和阶段2的时间戳。@Re:Javascript:在设置$\u会话变量的页面上,我不能使用Javascript,它必须留在服务器端。我想要检索变量的页面使用jQuery的AJAX获取一个PHP文件,该文件回显$\u会话['variable']
@Daniel\u,这是回显时间戳的好主意。结果确实相隔5秒!这使得问题变得更为强烈,为什么在“阶段2”已经发生之前,我无法检索“阶段1”$\u会话['variable']?这可能是因为服务器忙于睡眠脚本吗?根据您问题中的代码,$_会话['variable']将具有阶段2的值,因为它在5秒后被分配了这个新值,所以在脚本结束时,它的值是阶段2。您可以每隔5秒执行2个ajax调用—每个阶段一个。您必须使用PHP吗?或者你也可以使用Javascript?我测试了这个,我的脚本等待了5秒钟echo
输出$\u会话['variable']
和date('h:i:s')
的值,查看阶段1和阶段2的时间戳。@Re:Javascript:在设置$\u会话变量的页面上,我不能使用Javascript,它必须留在服务器端。我想要检索变量的页面使用jQuery的AJAX获取一个PHP文件,该文件回显$\u会话['variable']
@Daniel\u,这是回显时间戳的好主意。结果确实相隔5秒!这使得问题变得更为强烈,为什么在“阶段2”已经发生之前,我无法检索“阶段1”$\u会话['variable']?这可能是因为服务器忙于睡眠脚本吗?根据您问题中的代码,$_会话['variable']将具有阶段2的值,因为它在5秒后被分配了这个新值,所以在脚本结束时,它的值是阶段2。您可以每隔5秒执行2次ajax调用—每个阶段一次。
session_start();
$_SESSION['variable']='Stage 1';
sleep(5);
$_SESSION['variable']='Stage 2';