【问题标题】:Trigger a web page refresh触发网页刷新
【发布时间】:2011-09-13 13:42:44
【问题描述】:

我正在开发一个 android 应用程序,它将在平板设备上显示一个仅包含一些文本的 html 页面。设备将开启并长时间显示此页面(数小时)。此页面上的文字会不时更改。

为了更改页面上的文本,我制作了一个单独的第二页,其中包含一个用于输入新字符串的表单和一个提交按钮,该按钮使用 ASP 生成第一页的新版本并将其保存在原件。这是设置和工作得很好,但这意味着我必须非常频繁地刷新页面以确保我始终显示最新消息。

我正在寻找一种仅在保存新消息时触发刷新的方法。这样我就不必每分钟刷新页面,但新消息仍会及时显示。

【问题讨论】:

  • 这称为“推送”。您可以在谷歌上搜索“网站推送”并阅读很多处理方法。

标签: html triggers asp-classic refresh


【解决方案1】:

没有骰子,HTTP 被构建为无状态、仅拉取(忽略文件上传)协议。服务器无法向客户端推送数据,客户端必须实际轮询服务器以获取新信息。

但是,您可以通过使用 JSON 作为传输协议的 AJAX 调用来最小化此开销,而不是生成整个网页并在客户端更新您的页面。几乎所有应用程序的开销都应该是最小的。

【讨论】:

  • HTTP 中有模拟推送的机制。本质上,您使用的是挂起的 GET。您发出 GET 请求,但服务器不会立即响应它——它会在它想要推送时响应。有一些框架可以处理所有细节(和重新启动),让这看起来像是真正的 PUSH。
  • 当然可以,但它们仍然只是基于拉取技术的 hack。我的回答在技术上是正确的:)
  • 如果客户端支持JavaScript WebSockets,服务器可以推送数据。这不是 HTTP,但很容易实现。
  • @WTP,是的,我读过关于他们的文章,但我还没有机会和他们一起玩。不过你是对的,它们不是 HTTP,很可能会被各种配置不当的防火墙捕获。
【解决方案2】:

如果您只是一个网络应用程序,我建议您研究各种 Comet 框架。

http://www.google.com/search?q=comet+framework

但是,由于您周围有一个 Android shell,您可以与服务器建立一个 Socket 连接,并在需要刷新时获得服务器信号。本质上是相同的,但如果您更熟悉 Java,则无需在 JavaScript 中编写推送代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-13
    • 2010-12-30
    • 2015-04-20
    • 1970-01-01
    • 2016-12-09
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多