2014-06-20 25 views
0

我有相同的浏览器客户端问题尝试打开与它的多个选项卡。但我的服务器正在等待第一个请求完成。Zend Framework - 同一浏览器打开多个选项卡,但等待第一个请求完成

例如

  1. 打开第一浏览器标签称取更像30秒的时间。

  2. 现在,下一个标签打开CTR +鼠标的帮助下单击打开新建选项卡,这只是静态页面1秒等待;但是,我必须等待第一个请求完成。

注:我的网站在没有直播,但我用下面的技术 PHP 5.4中,MySQL,Zend框架2.1,XAMPP 1.8

请上述问题,如果一个confution可以引导评论它。我也很乐意做聊天。

+0

我认为,这是因为你的环境设置为只有一个PHP的工作进程。 –

+0

@DenisV - 我不这么认为,这与我的8核心CPU,16 GB Ram专用服务器是同样的问题。但问题是同一个客户端并等待第一个请求完成。 –

+0

那么,Sundar在他的回答中应该是对的。我们公司有类似的东西。 –

回答

0

我想你在每一页上都有session_start()

默认PHP会话基于文件。因此,无论何时调用session_start(),服务器上都会发生文件锁定。在完成该过程之前,文件锁定将不会被释放。

要解决此问题,请在页面上使用session_write_close()。使用此会话可以高效关闭。一旦你将所有内容写入会话中,然后关闭它。

session_write_close()将释放该锁。在session_write_close()之后,您可以从会话中读取数据,但无法写入。如果要编写它,则需要使用session_start()再次重新启动会话。

会话数据通常存储在将脚本终止而不 需要调用session_write_close(),但作为会话数据被锁定 防止并发只写脚本可以在任何时间上的会话 操作。当将帧集与会话一起使用时,由于这种锁定,您将会在 中逐个加载帧。您可以通过 尽快结束会话来减少加载所有帧所需的时间,因为会话变量的所有更改都已完成。

编号:

http://www.php.net//manual/en/function.session-write-close.php http://www.php.net/manual/en/function.session-start.php

+0

尊敬的@Sundar,但是我的系统使用Zend 2.1 Framework,我认为所有这些都由Zend Framwork负责。所以,不需要担心session_write_close();因为Zend \ Session \ Container将关注所有会话存储和发布。 –

+0

什么是相同的场景框架。框架是我们需要根据我们的需要定制的标准框架。请检查您的整个框架session_write_close是否放置在适当的位置 – Sundar

+0

请查看这些行'会话数据被锁定以防止并发写入只有一个脚本可以在任何时候对会话进行操作' – Sundar

相关问题