簡體   English   中英

HTTP請求之間具有持久狀態的模型

[英]Models with persistent state between HTTP requests

我想創建一個Web應用程序,其模型在HTTP請求之間保持不變。 根據我的理解,像PHP這樣的語言將每個HTTP請求視為一個全新的連接,除了一些全局變量,如SESSION; 因此,每次用戶更改頁面時,我的所有PHP類都會再次加載到內存中(並且每個AJAX請求也會這樣做) - 每次都需要我從數據庫構建。

我錯了還是我試圖在一個正方形中形成圓圈? Memcached似乎是一個很好的解決方案,可以將我的模型保存在頁面請求之間的內存中,但它仍然需要加載緩存。 PHP CLI看起來很有希望,但在進行了更多研究之后,它似乎比它的價值更麻煩。 有什么建議?

您應該避免在Web應用程序中要求持久狀態; HTTP是無狀態的,您需要圍繞它設計業務邏輯。 此外,PHP不是非常安全的內存泄漏,因為它不是作為守護進程或長時間運行。 您也不應該在PHP變量中維護信息數據庫。 您可以在memcache中緩存昂貴的查詢結果,並以非常小的延遲檢索它們。

您可以序列化模型,將其存儲在會話(或內存緩存)中,並在下一個請求中對其進行反序列化,以便將相關變量保持在請求之間的范圍內。 如果您分享有關應用程序細節的更多信息,也許我們可以幫助您找出處理此問題的最佳方法。

我同意應該盡量避免在請求之間共享狀態。 但在極少數情況下,例如通過HTTP實現簡單的消息隊列,需要手頭有這個功能。

對於php,可以通過php_shmop擴展使用IPC。

對於nodejs,我發現了這一點

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM