AJAX应用程序如何在ASP.NET AJAX中编写的应用程序如何通知客户端在服务器中触发的事件?我的意思是像Gmail这样的应用程序每当有新电子邮件到达时,Gmail会通知客户。我非常感兴趣如何在ASP.NET AJAX中使用UpdatePanel完成。我知道UpdatePanel有一个Triggers属性,但它只适用于Controls事件而不是我自己的类的事件。AJAX应用程序如何通知客户端在服务器中触发的事件?
回答
Ajax应用程序连续检查服务器状态以实现此效果。他们一直以客户身份工作,无法接收来自服务器的请求。
当应用程序使用AJAX时,会将新图层添加到通信模型中。在经典的Web应用程序中,客户端(浏览器)和Web服务器之间的通信是使用HTTP请求直接执行的。
当访问者请求一个页面时,服务器会立即发送完整的HTML和CSS代码。访问者填写表单并提交后,服务器将处理信息并重新构建页面。然后它将整个页面发送回客户端。等等。
当使用AJAX时,页面只在第一次被请求时被完全加载一次。除了构成页面的HTML和CSS代码之外,还会下载一些JavaScript文件:AJAX引擎。所有对服务器的数据请求将作为JavaScript调用发送到该引擎。然后,AJAX引擎异步请求来自Web服务器的信息。因此,只有小页面位被请求并发送到浏览器,因为它们是用户需要的。引擎然后显示信息而不重新加载整个页面。这导致了一个更响应的界面,因为只有必要的信息在客户端和服务器之间传递,而不是整个页面。这产生了信息立即显示的感觉,这使得Web应用程序更接近他们的桌面亲戚。
为了更好地说明在客户端(浏览器)和远程服务器,以及经典和AJAX供电的应用之间的差异之间的通信,来看看下面的图:
AJAX通信模型图 图1:经典和AJAX通信模型 alt text http://www.interaktonline.com/img/art/AJAX/ajax_comm_model_gif.gif?0.33986484845155046
AJAX与服务器通信的方法的核心在于AJAX引擎。这只不过是一些实例化和使用XMLHttpRequest对象的JavaScript代码。这是一个JavaScript对象,它允许在不刷新整个页面的情况下发送,接收和处理来自服务器和从服务器发出的HTTP请求。
在AJAX驱动的应用程序中,数据的HTTP请求可以完全在后台进行,而用户不会遇到任何中断。这意味着用户可以继续工作并使用应用程序,同时从服务器接收必要的页面部分。 XMLHttpRequest对象是作为Internet Explorer中的ActiveX对象实现的,后来在大多数现代浏览器(FireFox,Safari)中成为本机JavaScript对象。
尽管为任何类型的模型添加额外的图层都会增加响应时间,但这是一个例外。通过使用这个新层 - AJAX引擎 - 响应时间缩短,用户界面似乎更多地连接到应用程序逻辑。而且,用户不必再等待页面加载。
- 1. 如何在调用WCF服务时触发事件(客户端)
- 2. java程序客户端触发服务器端java程序
- 3. 客户端/服务器应用程序
- 4. 客户端 - 服务器应用程序
- 5. 服务器客户端应用程序
- 6. 如何使应用程序客户端从服务器推送的EJB中获取事件和通知?
- 7. 如何通知客户端应用程序从服务器断开namedpipe?
- 8. jboss客户端 - 服务器应用程序。并发用户
- 9. 爪哇 - 如何从服务器发送通知到客户端
- 10. AJAX vs客户端服务器应用程序?
- 11. Web应用程序的客户端 - 服务器通信的styleguide
- 12. 通知客户端从服务器
- 13. HTTP服务器如何通知客户端响应已结束
- 14. 如何在客户端中断时通知服务器?
- 15. 发送文件在C#中的客户端 - 服务器应用程序
- 16. 服务器到客户端通知/ Web服务(jax-ws)到客户端通信
- 17. 使用INDY开发客户端服务器应用程序
- 18. 如何在服务器端事件中注册客户端事件侦听器?
- 19. 如何使用Meteor服务器端事件触发事件
- 20. 如何在WCF中使用客户端应用程序服务?
- 21. 客户端应用程序与应用程序服务器的通信
- 22. 如何同时触发客户端和服务器端验证?
- 23. Android应用程序,客户端 - 服务器通信
- 24. 为专有服务器开发客户端应用程序
- 25. 开发Android客户端服务器应用程序
- 26. 客户端 - 服务器应用程序中的线程同步?
- 27. 如何在客户端/服务器Java应用程序中传输文件
- 28. 如何运行本地服务器/客户端应用程序?
- 29. 如何编写android客户端服务器应用程序?
- 30. 如何正确构建客户端/服务器应用程序?
感谢您的回复,但会因为连续连接到服务器而影响性能和带宽消耗? – 2009-10-18 05:57:47
准确地说,您没有连续连接到服务器(连接在每次请求后关闭),但必须连续向服务器发出请求(例如,每隔10秒)。我不认为在带宽上会有任何性能损失,因为ajax消息通常非常小(响应通常在xml中,大约几千字节)。唯一的问题是您正在使用的投票模式 - 即使可能没有新消息,您仍在投票。如果您正在寻找双工通信检查,例如Java小程序。 – empi 2009-10-18 09:10:10