繁体   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