我正在构建一个网页组件,需要进行相对频繁的数据库轮询。我可以看到两种不同的方法,想知道其中哪一种更好,或者是否缺少第三种选择。
1)每1或2秒发送一个AJAX请求以检查更新。每个请求无论是否有新数据都会立即返回。
2)触发一个单独的AJAX请求,直到它接收到数据或超时发生才返回。在其中任何一个情况发生时,它将触发下一个请求。(我认为这被称为长轮询?)
两种方法使用的数据库查询数量相同,但是使用#2会减少浏览器发出的请求,从而可以节省带宽和客户端资源。对于服务器来说,是更好地保持一个PHP请求保持活动状态并在查询之间休眠,还是每隔几秒钟启动一次,轮询数据库,然后关闭呢?或者没有区别,我太过于担心这个问题了吗?
编辑:我想我也应该说明一下,这是一个较大的Web应用程序中的聊天小部件。通信的轻微延迟不会对用户造成影响,因为聊天是次要功能。