【问题标题】:How do they make real time data live on a web page?他们如何在网页上制作实时数据?
【发布时间】:2011-05-02 22:48:33
【问题描述】:

他们是怎么做到的?我希望网页的数据字段随着人们查看网页而实时变化。这是example

他们是怎么做到的?查询? php?

我需要将我的字段数据连接到 mySQL 数据库。

【问题讨论】:

  • 对于遇到这个问题的每个人来说,这是一个非常古老的问题,有一些非常古老的答案 - 事情已经发生了变化。 WebSockets 现在得到了广泛的支持,通常可以用来代替轮询或彗星。你可以在 MDN 找到一个很好的介绍:developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/…

标签: real-time webpage


【解决方案1】:

有两种方法:

轮询

客户端定期请求数据。即使没有数据,也会使用网络和服务器资源。数据不是很“实时”。非常容易实现,但不可扩展。

推送

服务器向客户端发送数据,因此客户端可以简单地等待它到达而不是定期检查。 这可以通过套接字连接来实现(因为您正在谈论网页,除非您使用 Flash,否则这并不真正适用,因为浏览器中的浏览器中的套接字支持目前还不成熟) - 或者通过使用已知的技术作为“彗星”。

如果服务器端实现得天真,那么套接字连接和 Comet 都不是特别可扩展的。

- 要大规模处理实时数据(无需购买大量硬件),您将需要不为每个客户端使用线程的服务器软件。

【讨论】:

  • 对于 2011 年,这是一个很好且有效的答案 - 10 年后 WebSockets 成为实现服务器推送的方式。 ✌️
【解决方案2】:

要做到这一点,需要做两件事:

  1. 在浏览器上运行以获取最新数据的代码。这可能是 Javascript 或在 Silverlight 或 Flash 等插件中运行的东西。这将需要定期从服务器请求更新的内容。

这导致需要...

  1. 在服务器上运行以检索和返回最新数据(来自数据库)的代码。这可以使用任何服务器端脚本语言创建。

【讨论】:

    【解决方案3】:

    我用 JavaScript 计时器集执行(以毫秒为单位)做到了,每次计时器执行使用 Ajax 查询服务器并返回值(可能是 JSON 格式)的函数,然后您使用该值更新您的字段。我每5秒做一次,效果很好。在 ASP.NET 中,我认为它称为 Ajax Timer Control。

    【讨论】:

    • 这个答案的问题是每个连接的客户端都在不断地敲击你的服务器,即使数据没有改变! ..
    • 这样的另一个问题将导致服务器性能下降。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 2014-11-07
    • 1970-01-01
    • 2015-10-22
    相关资源
    最近更新 更多