我在我的會話中存儲5-6個變量值。任何關於如何在會話結束時續訂我的會話結構的建議?我正在使用Coldfusion 8. 謝謝!我們可以在Coldfusion中更新會話嗎?
回答
使用AJAX來ping服務器保持會話活着
或者只是延長會話超時timeSpand。
我是否必須在ajax調用中做一些事情,還是隻能返回一個空白結果以便更新會話? – 2011-04-25 21:02:02
您的AJAX調用應該碰到CFM頁面或CFC方法。這無能爲力,並且返回(例如)空字符串,但它需要成爲同一應用程序的一部分才能用作保持活動。 – 2011-04-25 21:19:17
從該會話對CFM頁面的任何調用都會導致會話被擴展。我所看到的是一個JS計時器將會運行並在會話過期前不久結束。當計時器運行時,它會觸發一個彈出窗口,加載一個非CFM頁面(基本HTML),該頁面將提示有關會話即將結束的消息,並詢問用戶是否希望繼續。
這是處理它的好方法。您可能仍然希望非活動會話最終超時。 – 2011-04-25 20:50:03
確切做你所要求的方法是當會話數據進入數據庫時onSessionEnd
解僱並在下一個onSessionStart
恢復它。要找出要讀取的數據條目,可以使用唯一標識符(例如,該條目的鹽漬+加密標識)將Cookie放入用戶的瀏覽器中,類似於「記住我」的內容。
您可以嘗試將會話超時設置爲小一些,例如5分鐘。
然後,當某人進行身份驗證時,將會話超時時間延長到30分鐘。
如果他們註銷,請將其放回原處。
例如。用5分鐘的會話超時配置你的cf管理員。
在登錄:
<cfscript>
// extend session timeout to 1800 seconds (30min)
session.SetMaxInactiveInterval(javaCast('long', 1800));
</cfscript>
上登出:
<cfscript>
// shrink session timeout to 300 seconds (5min)
session.SetMaxInactiveInterval(javaCast('long', 300));
</cfscript>
會話徘徊的5分鐘,然後清理。 除非您繼續使用本網站,在這種情況下,每個網頁請求會再給您5分鐘。
以下是對Ajax的自動ping服務器看起來是這樣的想法(如Henry's answer建議。)
//This function will keep the session alive as long as the page is still open.
//Whenever the page nears expiration, it automatically extends it.
function autoExtendSession(days,hours,mins,secs){
var milliseconds = (days*86400000)+(hours*3600000)+(mins*60000)+(secs*1000);
setTimeout(
function(){
$.post("server/heartbeat.cfm");
console.log("Heartbeat sent to the server.");
//Start another timer.
autoExtendSession(days,hours,mins,secs)
//Once we are 98% of the way to the timeout, the heartbeat is sent.
//This way the timeout should never actually be reached.
}, milliseconds-(milliseconds*0.02));
};
的hearbeat.cfm
頁面實際上並沒有包含任何內容,服務器將更新會話當$ .post點擊它時,無論它是否有內容。
- 1. 我可以在Coldfusion會話變量中存儲結構嗎?
- 2. 會話超時後,我們可以保留會話嗎?
- 3. 我們可以更改PowerShell會話的LanguageMode嗎?
- 4. 我可以在輸入時使用jQuery更新PHP會話嗎?
- 5. 我們可以在php中創建無限的會話嗎?
- 6. 我們可以在Mulesoft中管理會話嗎?
- 7. 我可以訪問JQuery內部的ColdFusion會話嗎?
- 8. ColdFusion會話可以存儲在dynamoDB中嗎?
- 9. 我們可以在GDB會話中定義新的數據類型嗎
- 10. coldfusion會話刷新
- 11. 我可以在Flask中創建更多會話對象嗎?
- 12. 我們可以在對話框中打開對話框嗎?
- 13. 我們可以在Bigquery中增加更新配額嗎?
- 14. 我們可以在GET方法中刪除或更新嗎?
- 15. 我們可以在elasticsearch中更新角色嗎?
- 16. 可以在關閉休眠會話後刷新會話嗎?
- 17. 我們可以將光標設置爲會話變量嗎?
- 18. 我可以更新HDFStore嗎?
- 19. 會話期間IP可以更改嗎?
- 20. 我可以從CodeIgniter中的session_id重新加載會話嗎?
- 21. 我們可以更新Angularjs中的JSON文件嗎?
- 22. 我們可以更新視圖中的真實數據嗎?
- 23. 我們可以訪問windows phone 7中的twitter更新嗎?
- 24. 我們可以在angularjs中使用會話和本地存儲嗎?
- 25. 我們可以在Android中使用liferay-mobile-sdk進行安全會話嗎?
- 26. 我們可以在asp.net MVC的視圖中獲取會話值嗎?
- 27. Android Facebook:我們可以使用Facebook SDK在Android中創建多個會話嗎?
- 28. 我們可以在多個瀏覽器中使用stateserver會話嗎?
- 29. 我可以通過Ajax更新會話,並在PHP閱讀此會話之後?
- 30. 我們可以在android中打電話時錄製嗎?
除非您處於緊張的加載狀態,否則您可能只會延長會話超時時間並且看不到任何性能問題。 – 2011-04-25 21:12:09