我使用Zend的Session Zend_Auth的和會話命名空間以下列方式合併:Zend的會議,Zend_Session_SaveHandler_DbTable和異步請求
的application.ini
resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
resources.session.saveHandler.options.name = "session"
resources.session.saveHandler.options.primary = "id"
resources.session.saveHandler.options.modifiedColumn = "modified"
resources.session.saveHandler.options.dataColumn = "data"
resources.session.saveHandler.options.lifetimeColumn = "lifetime"
引導
/**
* Start session
*/
public function _initCoreSession() {
$this->bootstrap('db');
$this->bootstrap('session');
Zend_Session::start();
}
儘管Zend_Auth似乎很好,但t他的其他會話名稱空間似乎表現得很奇怪。
我使用了幾個異步請求(使用jQuery)。
-init(intializes陣列到會話)
$ns = new Zend_Session_Namespace('scanner');
$ns->unsetAll();
$ns->pages = array();
-loop(放東西成陣列,這部分被稱爲1〜n次)
//Fetch the Session Namespace
$ns = new Zend_Session_Namespace('scanner');
//Set scanned page to true
$ns->pages[$this->getRequest()->getParam('nextUrl')] = true;
-Finalize(處理array)
//Fetch the Session Namespace
$ns = new Zend_Session_Namespace('scanner');
//Do stuff with $ns->pages
然而,在調用循環頁面變量的某處似乎被重置(並因此爲空) 。
這工作在默認的會話行爲,但它開始失敗時,我設置Zend_Session_SaveHandler_DbTable。
* 編輯 *
至於第一個答案的響應(因爲它需要一個代碼塊)
我使用.post的$提出要求我的應用程序。它嚮應用程序發送一個包含數據(URL)的請求,並且它接收到一個狀態更新和一個URL以請求下一個請求。這個循環直到它沒有收到下一個url。
jQuery代碼使用
function scanUrl(url)
{
$.post("http://www.example.com/scan/scanurl", { nextUrl: url },
function(data)
{
updateView(data);
if(data.nextUrl != null)
scanUrl(data.nextUrl);
else
finalize();
});
}
當然這會在會話cookie? –
所以你說如果我發佈一個名爲sessionIdVariable的變量與我當前的sessionID應用程序將拾取它嗎? PS。我用我的JS請求循環添加了一個代碼塊。 –