我正在构建一个需要相对恒定的数据库轮询的网页组件。我可以看到两种不同的方法,我想知道其中一种是否比其他方法更好,或者我是否缺少第三种选择。
1) 每 1 或 2 秒发送一次 AJAX 请求以检查更新。无论是否有新数据,每个请求都会立即返回。
2) 触发一个 AJAX 请求,该请求在接收到数据或发生超时之前不会返回。在其中任何一个发生时,它都会触发下一个请求。(我认为这称为长轮询?)
数据库查询的数量将与任何一个相同,但使用 #2 时,从浏览器发出的请求会更少,这可以节省带宽和客户端资源。对于服务器,最好让单个 PHP 请求保持活动状态并在查询之间休眠,还是每隔几秒启动一次,轮询数据库,然后关闭?还是没有区别,我对此压力太大了?
编辑:我想我还应该声明这是一个更大的网络应用程序的聊天小部件。通信中的轻微延迟不会杀死用户,因为聊天是次要功能。