2014-06-20 53 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

相關問題