使用VS2012 C#asp.net网页应用程序,在 ASP.NET网页的默认模型中,用户与页面交互并单击按钮或执行导致其他操作的其他操作回发。重新创建页面及其控件,页面代码在服务器上运行,并将新版本的页面呈现给浏览器。但是,我想从客户端运行服务器代码而不执行回发。如果页面中的客户端脚本正在维护某些状态信息(例如,本地变量值),则发布页面并获取它的新副本会破坏该状态。此外,页面回发会引入处理开销,这会降低性能并迫使用户等待页面被处理和重新创建。
为了避免丢失客户端状态而不会导致服务器往返的处理开销,我想编写一个ASP.NET网页,以便它可以执行客户端回调。在客户端回调中,客户端脚本函数将请求发送到ASP.NET网页。网页运行其正常生命周期的修改版本。启动页面并创建其控件和其他成员,然后调用特殊标记的方法。该方法执行您已编码的处理,然后将值返回给浏览器,该值可由另一个客户端脚本函数读取。在整个过程中,页面都在浏览器中生效。
在ASP.NET网页中有几种自动化客户端回调的选项。 ASP.NET中的AJAX功能(如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
我很困惑哪一个最好,请原谅我缺乏我的信息知识,需要帮助是否有比上面更聪明的东西。是否有任何智能框架用于客户端回调功能。
任何类型的建议都是可以接受的,如果有任何疑问请咨询,谢谢高级。
答案 0 :(得分:0)
ASP.NET SignalR 可能是所有技术中最新的,当涉及到客户端和服务器之间实现实时通信而没有完整页面回发时。对于预期服务器端的数据经常更改并且需要立即在客户端更新相同的情况,它是最理想的。一个典型的用例是一个体育网站,显示正在进行的比赛的现场比分。要了解详情,请参阅以下链接:http://www.asp.net/signalr。
您选择的技术应该取决于您的要求。如果您正在使用ASP.NET Webforms并为利基受众开发网站,那么基于AJAX的更新面板应该能够解决您的大部分问题。再说一遍,更新面板没有什么可以做哪些普通的旧JavaScript(以及像jQuery这样的javascript框架不能)。通过JavaScript消费Web服务总是异步的,因此不需要页面回发。