2011-09-13 98 views
0

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

要更改页面上的文本我已经做了一个单独的第二页,其中包含一个窗体来输入新的字符串,并提交按钮,使用ASP生成第一页的新版本,并保存在顶部的原始副本。这是建立和运作良好,但这意味着我必须非常频繁地刷新页面,以确保我总是显示最新的信息。

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

+0

这被称为“推”。你可以谷歌的“网站推”,并阅读了很多方法来处理这个。 –

回答

1

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

但是,您可以通过使用带有JSON的AJAX调用作为传输协议而不是生成整个网页并在客户端更新您的页面,从而最大限度地降低此开销。对于几乎任何应用程序而言,开销都应该很小

+0

HTTP中有机制模拟推送。基本上,你使用一个挂钩的GET。您发出GET请求并且服务器不会立即做出响应 - 它会在需要推送时作出响应。有框架可以处理所有的细节(并重新启动),使其看起来像是一个真正的PUSH。 –

+0

当然,但他们仍然只是基于拉技术的黑客。我的答案在技术上是正确的:) – Blindy

+0

如果客户端支持JavaScript WebSockets,则服务器**可以**推送数据。这不是HTTP,但很容易实现。 – 2011-09-13 13:56:28

0

如果你只是一个网络应用程序,我会建议寻找各种Comet框架。

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

但是,因为你周围有一个Android的壳,你可以做一个Socket连接回您的服务器,并有当它的时间来刷新服务器信号。它本质上是一样的,但如果你在Java中更加舒适,则不需要在JavaScript中对代码进行编码。