页面加载后将内容推送到客户端
本文关键字:客户端 加载 | 更新日期: 2023-09-27 18:25:53
我想知道以下是否可能:
我在我的网站上引用了一个dll。此dll建立远程套接字连接。套接字连接正在后台等待,在套接字接收到一些数据后,dll通过事件报告回数据。
在加载页面期间打开连接。
现在,例如,我想在新数据到达时更新页面上的标签。
我不确定这会如何运作。我假设我可以在页面上设置某种计时器来更新控件,但它似乎不是"最佳"的,因为我已经通过事件调用了代码。UpdatePanel或接口的任何更新都会等待事件,并在事件发生时"更新",而不是基于时间。
我的问题是——这可能吗?
您可以使用称为"长拉"或"web套接字"的技术。
有些图书馆,比如SignalR,可以帮助你。
当客户端的浏览器支持时,它们通常使用web套接字,而当不支持时,则使用长拉。
使用这些库,您可以根据需要将命令/数据从服务器"推送"到客户端的浏览器。
Server无法推送客户端,这是web工作的规则。有两种可能的方法来完成你的任务。
- 在页面上设置计时器,并在服务器上发出请求,以查看是否发生了更改
- 像facebook一样,打开客户端和服务器之间的长拉连接。听
并从服务器获取数据。它可以是,例如xmpp或任何其他
您应该考虑扭转这一局面;与其异步地从代码后面启动调用,然后更新客户端,不如将原始页面交付给客户端。
一旦页面在客户端加载,您就可以对服务器进行AJAX调用来检索您想要的数据,并在这种情况下显示一个小的"我正在加载"符号。
Page方法是这方面的理想选择。
经典的ASP.Net网页应该在用户请求的持续时间内持续使用。当发生回发时,它会从用户的视图状态、会话和您维护的任何其他状态有效地重建调用的状态。例如,它从不在乎用户是否离开(尽管它可能会感到有点孤独)。
让它停留更长时间在很多方面都是有问题的,但是,您可以实现客户端回调。然而,尽管服务器启动了这一过程,但客户端管理生命周期,因此它类似于页面方法。