gpt4 book ai didi

javascript - 无需重新连接数据库的 Ajax 查询

转载 作者:行者123 更新时间:2023-11-29 03:26:37 25 4
gpt4 key购买 nike

我编写了在 map 上显示汽车的网页。所有页面刷新过程都是使用 XMLHttpRequest 完成的。所有的数据库查询,不管那些在页面加载时的查询,都是用相同的方法完成的。问题是,当我发送 XMLHttpRequest 时,我需要打开到我的数据库的新连接。页面每隔几秒刷新一次,必须刷新很多对象。它会生成大量与我的数据库的新连接。

我想做的是在我启动我的页面时只打开一次 mysql 连接,并在所有这些 Ajax 查询中使用这个连接。

这可能吗?

(已编辑)

根据您的回答,我一直在寻找持久连接和 Node.js,但我仍然无法理解它。 有人可以发布持久连接和 XHR 的示例吗?

请帮助我理解 Http 连接生命周期。当我写 mysql_connect 时会发生什么?什么时候关闭连接? mysql_pconnect 呢?从服务器的 Angular 来看,打开的连接是怎样的?

最佳答案

如果不使用 PHP,您将无法做到这一点。

每次您请求由 PHP 支持的网页查询数据库(如 MySQL)时,PHP 都需要“打开”连接、查询数据库、关闭连接并自行关闭。

...但是有一些技巧:

1:分块解决方案

使用循环在 PHP 脚本上执行 XMLHttpRequest 请求(30 秒可能很好)。每次循环执行,您都可以写入一些数据以在 ajax 查询中返回。循环结束后,重试查询(它将每 30 秒进行一次连接)。

此解决方案称为分块数据。您在每个循环中返回“部分”响应,并且 ajax 查询解析每个数据 block 。这需要有一个 PHP 和没有缓冲缓存的 Web 服务器。

2:守护进程解决方案

您可以有一个“后台”PHP 脚本作为守护进程使用一个线程(或多个线程?)查询数据库,然后创建一些静态文件(包含 json?)并使用 XMLHttpRequest< 查询静态文件.

关于javascript - 无需重新连接数据库的 Ajax 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35221984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com