【发布时间】:2016-02-05 10:39:05
【问题描述】:
我编写了网页以在地图上显示汽车。所有页面刷新过程都是使用 XMLHttpRequest 完成的。所有数据库查询,不管是在页面加载时的查询,都是用相同的方法完成的。 问题是当我发送 XMLHttpRequest 时,我需要打开到我的数据库的新连接。页面每隔几秒钟刷新一次,并且必须刷新很多对象。它会为我的数据库生成许多新连接。
我想要做的是在我启动我的页面时只打开一次 mysql 连接并在所有这些 Ajax 查询中使用这个连接。
有可能吗?
(已编辑)
根据您的回答,我一直在寻找持久连接和 Node.js,但我仍然无法理解它。 有人可以发布持久连接和 XHR 的示例吗?
请帮助我了解 Http Connection Lifecycle。当我写 mysql_connect 时会发生什么?连接何时关闭? mysql_pconnect 呢?从服务器的角度来看,开放连接如何?
【问题讨论】:
-
使用持久连接,或单例类或存储您在会话中获得一次的数据,如果不经常更新,则下次从会话中获取。
-
您可以使用持久连接,是的 - 尽管如果您在每次使用后不关闭连接,您更容易受到攻击。此外,与许多小型但快速关闭的连接相比,打开大型持久连接可能会给您的服务器带来更多压力(但我认为速度比较值得测试)。
-
如果可能,请不要为此使用 PHP。有更好的平台更适合您的方法,例如 NodeJS。
-
就像@MartinHeralecký 所说,这种网络/应用程序/游戏比websockets 更好。易于与 nodejs 一起使用。
标签: javascript php mysql ajax