我在CakePHP中找到的一個很好的功能是能夠設置一個「flash」消息,比如說一些「保存」腳本,然後在下一頁顯示該消息。類似於「發佈更新」或「錯誤 - 找不到文件」。基於Cookie和基於會話的Flash消息
Cake做這件事的方式是用這個「session」對象。我試圖避免像瘟疫這樣的會議,因爲它們對可擴展性有着奇怪的要求。我能不能簡單地將Flash消息存儲在cookie(客戶端)中,然後在該cookie顯示在下一頁後刪除該cookie?這種方法會有什麼優點/缺點 - 或者更簡單地說,爲什麼Cake會使用「會話」(我假設它涉及_SESSION集合)。
乾杯!
p.s.在我的實現中,我還通過javascript中的「setTimeout」命令使其淡出。我發現這是結束整個過程的好方法。
「我試圖避免會議像瘟疫,因爲他們奇怪的要求scal能力」。你能詳細說明嗎? – 2011-05-16 18:20:19
是的,當將Web服務器水平擴展到服務器場中時,您無法保證相同的服務器在同一個請求中被擊中 - 因此它可能正在服務器A上處理,生成會話Flash消息,然後在隨後的重定向中顯示來自服務器B不知道其他服務器的會話。有解決這個問題的辦法,但它們不是最優的IMO(即粘性會話等)。 – MikeMurko 2011-05-16 19:23:10
@MileMurko大多數HA應用程序實現的特定問題的解決方案是將會話保存處理程序切換爲使用數據庫或分佈式緩存解決方案(如memcache)。這使會話數據可以從任何網站頭獲得。如果你的問題是'哪個更好',那麼你需要詳細解釋爲什麼你不會固有地選擇一種解決方案。 – 2011-05-16 19:28:15