2017-03-03 83 views
1

我想要的: $ _SESSION变量在脚本的前5秒内应该等于“阶段1”,然后应该更改为“阶段2”。

我得到的结果: $ _SESSION变量在5秒结束之前一直未设置,此时它被设置为“阶段1”,并立即“阶段2”。

session_start(); 

$_SESSION['variable']='Stage 1'; 

sleep(5); 

$_SESSION['variable']='Stage 2'; 

我在做什么错?

(我需要这个代码概念能够得到使用AJAX的长PHP脚本的进度实时跟踪的目的,另一页上$ _SESSION变量。)


编辑:我想我意识到这个问题:当服务器忙于在一个页面中调用sleep,服务器“挂起”,直到该脚本完成。因此,当试图在另一页上检索$_SESSION['variable']时,该页面只是等待(正在连接...),直到第一页完成其sleep,然后服务器才将第二页发送到浏览器。

我是否需要升级到更好的服务器?(我目前使用1and1的最便宜的托管计划)

+0

您是否必须使用PHP?或者你也可以使用JavaScript? – WasteD

+0

我测试了这个,我的脚本等待5秒钟。 'echo''$ _SESSION ['variable']'和'date('h:i:s')'的值来查看第一阶段和第二阶段的时间戳。 –

+0

@WasteD ** Re :在设置$ _SESSION变量的页面上的Javascript:**我无法使用JavaScript,它必须保持服务器端。我想要检索变量的页面使用jQuery的AJAX获取与$ _SESSION ['variable']'相呼应的PHP文件。 – qrafzvzv

回答

0

我在另一篇文章中看到了一些东西,也许这对你有用。

尝试在文档的顶部添加set_time_limit(0);。机会是 它正在达到“最大执行时间”并导致脚本终止 。