Php /使用ajax自动更新客户端
php/using ajax to automatically update the client side
我使用PHP编写网页的服务器端,并使用javascript构建客户端。
网站上有一个div将显示从服务器端接收到的数据,例如,假设显示数据库中当前注册用户的数量。在一段未知的时间内,这个数字会不断变化。例如,这个数字可以在10小时内保持不变,并且可以在10分钟内增加1000。
我的第一个问题是,做这个功能的最好方法是什么,这样网站就可以总是显示这个数据的最新或几乎最新的价值?
我最初的方法是使用Javascript AJAX和setInterval(1000)(-1秒)包装发送AJAX请求到服务器端。但我不确定这对于客户端(因为javascript是单线程的,如果有一个函数在每1秒内运行,它可能会很慢)甚至服务器端(例如,如果数百个用户打开这个网站,数百个请求将被发送到服务器端)来说是否太重。这样可以吗?
我的第二个问题是,如果这不是一个好方法,我还能做什么来达到同样的目标?我想用另一种方式。例如,如果服务器端有更新,那么在服务器端使用PHP将此更新推送到客户端,甚至使用PHP脚本直接更改HTML中显示的数据。这可能吗?如果是,这是一个好方法吗?
提供的任何代码或示例都将非常感激。
您当然可以使用AJAX进行随时间分散的更新,但是如果您想每秒钟连接到服务器,我建议不要这样做。
这里有几个选项:
-
正如@Kay已经提到的,
long polling
可能是一个选择。 -
或者,你可能想看看WebSockets或支持WebSockets的框架,如Meteor
您可以使用简单的长轮询。
客户端请求脚本"/counter?oldvalue=...×tamp=...
。如果没有更改,服务器不会立即返回值,而是闲置长达30秒。
如果计数器的值发生了变化,那么立即返回更新后的值
- 从客户端更新Meteor.users
- 当客户端将两个按钮的javascript函数参数修改为相同时,SQL/PHP会更新多行
- 这是否可能延迟客户端的UpdatePanel更新
- 如何在客户端的元窗口小部件(JavaScript)中获取和显示更新的域模型
- Javascript:我无法获得一个文本框来显示客户端更新的值
- RxJS:在每次返回并行http请求时更新客户端
- 使用 Javascript 更新客户端中的事件
- 在 Rails 中,如何强制更新客户端的 js/css 文件
- 断开连接时更新客户端中的用户列表
- 节点,socket.io - 将新条目添加到新闻源时更新客户端
- 更新客户端上的Dojo存储数据
- 使用AJAX调用更新客户端时出现Javascript错误
- 如何使用xPages强制更新客户端的设计更改
- 在服务器发送新映像的间隔后更新客户端映像
- 实时web更新客户端到客户端
- 重新绘制/更新客户端数据的Meteor.js事件
- ASP.使用JQuery更新客户端双列表框,以及如何在服务器端检索结果
- Php /使用ajax自动更新客户端
- 从Node.js更新客户端DOM
- 如何跟踪服务器端更新客户端