如何不断更新数据到asp页面?

时间:2009-07-26 09:18:38

标签: ms-access asp-classic

我有一个基于非常简单的数据库的asp页面。它引用了一个包含大约30个记录和12个数据字段的表,一切都很好,因为我每周只上传一个新的数据库。

我有一个特殊情况,我希望将新数据上传到数据库,并且每隔20到30秒在页面上自动显示,而无需用户刷新屏幕。我希望有多达1000个并发用户访问数据。

我一直在通过ftp手动上传数据库,这显然不适用于此时间线,并且在更换数据库时也会冒错误页面的风险。

那么,有人能指出我设定这种情况的正确方向吗?

其他可能有用的细节: 数据库是Access数据库(但如果需要,我可以更改为其他格式) 在由ISP托管的Windows平台上运行,而不是我自己的服务器

3 个答案:

答案 0 :(得分:0)

你需要知道javascript才能做到这一点。你呢?

您可以使用javascript中的setTimeout()方法每隔30秒向服务器发送一条更新内容的请求。该请求将是一个AJAX请求。

有关详细信息,请参阅:http://www.asp.net/ajax/

答案 1 :(得分:0)

您应该只更新服务器上数据库中的记录,而不是上传新数据库。这样,当页面想要从中读取数据库时,您就没有任何问题。

HTTP协议中没有服务器推送,因此您必须从浏览器检查更新。您可以使用AJAX来调用服务器以防止页面重新加载。

答案 2 :(得分:0)

如果您要手动滚动自己的Ajax解决方案,则需要了解XmlHttpRequest对象。这有一个回调函数,您可以指定它在返回时使用新数据更新HTML DOM,并且@hobodave指出使用setTimeout()函数来延迟下一个请求,但这是合适的。您需要创建Web服务以将数据作为预格式化的HTML或某些数据结构(如XML或JSON)返回。

当用户发出新请求时,他们应该只发送已更改的数据。如果没有数据更改,那么只需再发送一个新的时间戳而不是所有数据。请求应始终包含他们收到的上次成功更新的时间戳,然后您的请求应仅返回更改的新数据。

根据您更改数据的频率,您可以缓存数据服务器端的所有处理,只需将已格式化的HTML发送到页面即可。

现在,每次上传新行或更改行(您需要一些SQL技能以避免上传整个数据库)时,您可以为网页生成必要的输出,并在下次查询。你真的不希望人们不断要求数据,除非有可能发生变化的事件。

所有这一切,如果你不必担心过时的数据或过多的服务器端处理,一个非常简单的方法是使用meta refresh tag自动刷新整个页面,但你可能有如果每次都必须处理数据服务器端而且这根本不能很好地扩展,那么性能就会出现问题。