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

问题描述 投票:0回答:4

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

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

我一直通过 ftp 手动上传数据库,这显然在这个时间线上不起作用,并且在更换数据库时还会面临出现错误页面的风险。

那么,有人能给我指出设置这个场景的正确方向吗?

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

ms-access asp-classic
4个回答
0
投票

您需要了解 javascript 才能执行此操作。你是吗?

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

请参阅:http://www.asp.net/ajax/了解更多信息。


0
投票

您应该只更新服务器上数据库中的记录,而不是上传新数据库。这样,当页面想要读取数据库时,就不会出现数据库不可用的问题。

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


0
投票

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

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

根据您更改数据的频率,您可以缓存数据服务器端的所有处理,然后将它们发送为已格式化的 HTML 以插入到页面中。

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

总而言之,如果您不必担心过时的数据或过多的服务器端处理,那么一种非常简单的方法是使用元刷新标记自动刷新整个页面,但您可能会遇到性能问题如果您每次都必须处理服务器端的数据,那么这根本无法很好地扩展。


0
投票

@grid.GetHtml( 表样式:“网格”, headerStyle: “头”, 交替行样式:“alt”, 列:grid.Columns( grid.Column(格式:@Edit), grid.Column("标题"), grid.Column("流派"), grid.Column("年份") ) )

© www.soinside.com 2019 - 2024. All rights reserved.