`
gstarwd
  • 浏览: 1525156 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

在交互性要求强的场合,SilverLight使用Ajax是愚蠢选择

阅读更多
转载自网上 为了便于对silverlight的理解。


确切来说,SilverLight是一种嵌入到浏览器的桌面程序,和之前的ActiveX,flash的action script和java的appelt相近。

SilverLight 比ActiveX更好用,因为使用ActiveX要编写出交互性强的程序,必须要掌握复杂的COM,复杂的C++类型和结构体,对于一些没有编写 windows程序经验的Web初哥程序员来说,那是天书。别跟我说VB 6.0也可以写ActiveX,对于连多线程都没有自带,建线程都要去调用操作系统C++ API的VB 6.0来说,要写功能强大、性能优越的ActiveX(例如跟硬件交互),根本就无能为力。

说多了C++的东西了,虽然C++的确强大。 但不是本文范围,SilverLight和强大的ActiveX相比,避免繁琐的打包过程和复杂的GUID,他更通用, 只要目标电脑已经装过 SilverLight客户端,就能通行,什么都不需要再安装,就像flash和appelt一样。
和flash相比,SilverLight唯 一的劣势就是通用性 ,因为大部分的网站都已经用到了flash。不过SilverLight和flash相比却很多优点,在界面的效率 上明显占优,而且支 持多线 性,在性能上这是单线程的flash所不能比拟的,更让人受不了的就是他支持使用开发windows应用程序(不是底层程序)最强大的.net去编 写。

上面说了太多了,不过别以为和本文的标题没有关系。我上面所说的观点,都围绕着效率。
SilverLight面世的主要目的:
1 是因为界面执行效率(能直接和显卡打交道),是占CPU和内存超高的html 和 js根本无法相比的 ,让界面计算能力一直是瓶颈的Web开发看到了希望,加上DirectX 3D的支持,相信不久的将来魔兽争霸能出现在IE上面 ;
2 是因为他的后台数据处理能力,SilverLight支持多线程,支持使用http通信,更让人兴奋的却是他支持使用TCP/IP长连接通信。

看 到这里,可能很多没有开发过CS结构通信程序的Web开发的人员会愤愤不平地对我说,说我白痴,以为Ajax是最强大的通信方式。其实在我看来,Ajax 在实时处理方面,一直是非常低效的技术。而使用SilverLight的主要目的,其实很多时候想使用他强大的交互能力,这和低效的Ajax通信明显就存 在矛盾。

由于http无状态的通信特点,在交互性和实时性要求较高的场合,不得不使用Ajax,因为http通信模式下,客户端请求完成 之后,和服务端的连接是断开的,所以服务器假如有最新的消息,是无法通知客户端的。这就要求客户端不断地使用Ajax定时发http请求到服务器去刷数 据,假如这个间隔设置太短,不断的http请求会增加通信负担和客户端的处理负担,假如设得太长,实时性不高,这就是为什么一般的游戏都是CS结构而非 Web结构的原因之一。

很多web开发人员没有接触过基于TCP/ip的Socket通信,其实Socket通信才是交互性最强的通信 , 既然SilverLight的交互性这么强,为什么我们还要使用Ajax?为什么还要走回原路?假如你设计的系统是一套交互性和实时性要求比较高的系统, 使用Ajax去服务端提取数据,再用Js去通知SilverLight,那你就是蠢材(“说的有道理!”) 。因为你没有利用SilverLight的优势,你没有使用 Socket或者Remoting这些基于长连接的通信方式,SilverLight只是你的摆设罢了。

使用Socket通信能做到长连 接,连接一直不断,这种情况下服务端是能直接通知客户端的,以事件的方式通知,能做到真正的实时,假如你还去用JS通过XMLHTTP这种ajax方式定 时去服务端取数据,再通知SilverLight,那我建议你别再用SilverLight了,因为你相当于带着电视从社会主义回到原始社会,永远找不到 电源,发挥不了SilverLight的作用。

当然,我说的是交互性要求比较高,实时性要求比较强的场合(其实这就是使用 SilverLight的主要原因之一 )。在性能要求不高的时候,也可以使用Ajax和Webservice去取数据 ,别根本说Webservice也高 效,那只是开发效率上的高效,不是通信方式上的高效,其实它和ajax一样是基于无状态的http的,无法做到真正的实时。假如你还没有明白 Webservice,Socket和Remoting这些通信方式微妙的区别,还处于认为用那种都无所谓的阶段,那我有建议,有必要去补充一下 Windows Service通信程序的知识,学习一下Windows编程的基础,不要单单只学Web,而是整个Windows编程,学Windows的运作原理,坐井 观天是永远学不好SilverLight的。
分享到:
评论

相关推荐

    Silverlight与数据库交互示例

    ### Silverlight与数据库交互示例 #### 一、概述 随着Web 2.0时代的到来,用户对于网页的互动性和视觉效果的要求越来越高。Silverlight作为微软推出的一种强大的跨浏览器、跨平台的应用框架,旨在为用户提供丰富的...

    unigui_ajax网页交互

    在使用Ajax进行网页交互时,也要注意安全性问题,比如防止XSS(跨站脚本攻击)和CSRF(跨站请求伪造)等。 总结来说,Unigui与Ajax的结合使得开发者能够利用熟悉的Delphi环境,轻松创建具有高效交互性的Web应用...

    AJAX学习实例与数据库交互实例

    AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。这个技术使得用户可以与网页进行更流畅的交互,提高了用户体验。本学习实例集主要涵盖了AJAX与数据库交互...

    Beginning.Web.Development.Silverlight.And.ASP.NET.AJAX.Feb.2008

    本书旨在帮助读者掌握如何使用ASP.NET AJAX、WPF(Windows Presentation Foundation)、WCF(Windows Communication Foundation)、WF(Windows Workflow Foundation)以及Silverlight等技术构建高效、动态的网络...

    Asp.net Ajax 与Silverlight实战手册源码6-7-8章

    5. **Silverlight与Asp.net AJAX结合**:如何在同一个应用程序中使用Asp.net AJAX和Silverlight,实现更强大的交互性。 总结,Asp.net AJAX和Silverlight是.NET框架下构建现代Web应用程序的重要工具。Asp.net AJAX...

    Spring MVC与Ajax交互源码

    Spring MVC和Ajax是Web开发中的两个重要技术,它们在构建动态、交互性强的网页应用时起着关键作用。Spring MVC是Spring框架的一部分,提供了一种模型-视图-控制器(MVC)架构来组织和处理HTTP请求,而Ajax...

    Silverlight融合ajax实现前后台数据交互

    在技术实现上,该审批流程使用了前端的Silverlight表现层语言XAML,后台的服务器脚本语言是C#,数据存储格式为XML,而中间的数据传输则采用了AJAX(Asynchronous JavaScript and XML)技术。 在.NET环境中嵌入...

    ASP.NET、Ajax、Silverlight学习电子资料汇总

    Silverlight是微软开发的一个运行时环境,用于创建具有丰富媒体体验和交互性的Web应用程序。它可以插入HTML页面,提供类似Flash的功能,但更侧重于开发复杂的业务应用程序。提供的电子资料如"O'Reilly Silverlight ...

    silverlight技术应用实例

    1. **UI设计**:Silverlight使用XAML进行UI布局和设计,这是一种XML标记语言,可以轻松地定义控件、布局和样式。XAML使得非程序员也能通过直观的拖放方式构建UI。 2. **数据绑定**:Silverlight支持数据绑定,这...

    Silverlight完美入门.rar

    首先,Silverlight是一种插件技术,它通过在Web浏览器中嵌入一个小型运行时环境,使得开发者可以使用XAML(eXtensible Application Markup Language)来设计和创建具有高度图形化、动态交互性的网页应用。...

    使用Silverlight5 在vs2010平台上设计OOB模拟浏览器访问网页

    在IT行业中,Silverlight是一种由微软开发的富互联网应用程序(RIA)平台,它允许开发者创建交互性强、多媒体丰富的Web应用。Silverlight 5是该技术的一个版本,它提供了许多增强的功能和性能改进,使得开发人员能够...

    selenium silverlight 测试接口

    Silverlight是微软推出的一种富互联网应用程序(RIA)技术,它允许开发者创建交互性强、图形丰富的网络应用。当 Silverlight 应用程序需要进行自动化测试时,Selenium 提供了专门的接口来处理这类测试。 **Selenium...

    SilverlightApplication1 button

    Silverlight是微软推出的一种富互联网应用程序(RIA)技术,它允许开发者创建交互性强、视觉效果丰富的网页应用。"SilverlightApplication1 button"这个标题可能指的是一个基础的Silverlight应用示例,其中包含了...

    silverlight

    在IT行业中,Silverlight是一种由微软开发的基于浏览器的插件,主要用于创建丰富的交互式用户界面,尤其是在多媒体、动画和图形领域。它以其强大的数据可视化和媒体播放能力,一度成为Web开发的重要工具。本篇文章将...

    Silverlight漂亮界面主键

    总的来说,"Silverlight漂亮界面主键"和"MicSoft.Common.SL.dll"代表了过去在Silverlight开发中对于创建美观、交互性强的Web应用程序的追求,以及通过共享库提高开发效率的实践。虽然Silverlight的时代已经过去,但...

    ajax框架的选择.pdf

    在选择Ajax框架时,我们需要考虑的是框架的适用场景、系统架构、开发与维护成本,以及对特定技术栈的支持。Ajax框架主要用于构建富互联网应用程序(RIA),提供无刷新用户体验,提升Web应用的交互性和效率。 标题中...

    HtmlHost 一种能把网页显示在Silverlight程序里面的控件

    在Web开发领域,Silverlight作为一种强大的富互联网应用程序(RIA)框架,曾经广泛应用于构建交互性强、视觉效果丰富的网页应用。然而,有时开发者需要在Silverlight应用中展示外部网页内容,这时就需要借助特定的...

    silverlight菜单

    总的来说,"silverlight菜单"是一个关于使用Silverlight技术构建美观、交互性强的菜单系统的概念,可能包含了一些独特的设计元素,如翻转按钮。开发者可以通过学习和应用Silverlight的控件、模板、动画和数据绑定等...

    silverlight 64 位版

    在安装和使用Silverlight时,确保你的系统符合硬件和软件要求,同时注意安全问题,避免下载和安装来自不可信源的插件。对于开发者来说,理解Silverlight的技术特性并掌握其开发工具,如Visual Studio,将有助于创建...

    Ajax技术在台风信息系统中的应用研究.pdf

    Ajax技术在台风信息系统中的应用,可以提高台风信息的发布和数据共享的效率,提高用户的使用体验,提高台风信息系统的交互性和可扩展性。 此外,Ajax技术也可以应用于其他领域,如气象信息系统、地理信息系统等,...

Global site tag (gtag.js) - Google Analytics