在 ASP.NET 网页中以编程方式在没有回发的情况下实现客户端回调的最佳实施过程

Best Implement process for Client Callbacks Programmatically without Postbacks in ASP.NET Web Pages

使用 VS2012 C# asp.net 网页应用程序,在 ASP.NET 网页 的默认模型中,用户与页面交互并单击按钮或执行其他导致 回发 的操作。页面及其控件被重新创建,页面代码 运行s 在服务器上,页面的新版本呈现给浏览器。但是,我想 运行 来自客户端的服务器代码而不执行回发。如果页面中的客户端脚本维护某些状态信息(例如,局部变量值),则发布页面并获取它的新副本会破坏该状态。此外,页面回发引入了处理开销,这会降低性能并迫使用户等待页面被处理和重新创建。

为了避免丢失客户端状态并且不引起服务器往返的处理开销,我想编写一个 ASP.NET 网页,以便它可以执行客户端回调。在客户端回调中,客户端脚本函数向 ASP.NET 网页发送请求。网页 运行 是其正常生命周期的修改版本。启动页面并创建其控件和其他成员,然后调用特殊标记的方法。该方法执行您编码的处理,然后 returns 一个值到浏览器,另一个客户端脚本函数可以读取该值。在整个过程中,页面都在浏览器中。

在 ASP.NET 网页中有几个自动化客户端回调的选项。 AJAX ASP.NET 中的功能,例如 UpdatePanel 服务器控件可以为我自动执行异步部分页面更新,Web 服务通信功能可以自动执行异步 Web 服务调用。 请参阅以下主题:

1)UpdatePanel Control Overview
2)Microsoft Ajax Overview
3)Partial-Page Rendering Overview
4)ASP.NET AJAX Web Services

探索 ASP.NET AJAX Web 服务

1) Using Web Services in ASP.NET AJAX

2)Exposing Web Services to Client Script

3)Exposing WCF Services to Client Script

4)Calling Web Services from Client Script

我不知道哪个最好,请原谅我缺乏信息知识,需要帮助有没有比上面更聪明的东西。有没有客户端回调功能的智能框架

任何类型的建议都将被接受,如果有任何疑问请询问,在此先感谢。

ASP.NET SignalR 可能是所有技术中最新的,它可以实现客户端和服务器之间的实时通信,无需整页回发。它最适合服务器端的数据预计会频繁更改并且需要在客户端即时更新的场景。一个典型的用例是体育网站显示正在进行的比赛的现场比分。要了解更多信息,请参阅此 link:http://www.asp.net/signalr

您选择的技术应该取决于您的要求。如果您正在使用 ASP.NET 网络表单并为小众受众开发网站,基于 AJAX 的更新面板应该能够解决您的大部分问题。话又说回来,更新面板无法做普通旧 JavaScript(而 javascript 框架如 jQuery 做不到的事情)。通过 JavaScript 使用 Web 服务将始终是异步的,因此不需要页面回发。