Web开发新方法

自从 Tim Berners Lee 于1989年在欧核中心(CERN)发明Web技术以来,其发展经历了从静态页面到动态页面,从科学研究领域扩大到社会的各个行业。web的开发技术也随着实际的需要在不断变化。

最初的web应用主要是用于信息交换的静态页面,没有什么交互性,都是页面制作者事先作好后放到服务器上然后客户去获取。显然这种方式不能满足实际的需求,于是出现了CGI提供的动态生成的页面,页面内容在用户请求时在服务器端动态生成,返回给客户端,提高了客户端和服务器端的交互性。

但是CGI程序非常难写,通常用C和Html混合编写,页面效果要运行后才看得到,开发格式复杂的页面需要很多次来回修改,效率很低。

为克服上述问题,一种新的方法引入了,它在html页面中嵌入可执行脚本,当页面被请求时,服务器上的引擎会先执行页面中嵌入的脚本代码,然后将执行结果和html内容一起返回给客户端。这种方式可以采用可视化的方式设计页面,然后在设计好的页面中嵌入可执行脚本。象PHP、ASP、JSP都是属于这种方式。

随着代码量的增多,页面内的代码混在一起,犹如剪不断的愁丝,很难理清,后期维护成本很高。于是提出将显示部分代码和数据处理代码分开,希望能将动态代码从html代码中抽取出来。MVC是这种方法的一个常用方法,也出现了一些框架如struts。

不过实践下来 MVC也并没有将显示和数据处理真正分开,二者还是属于紧耦合,因为显示层处理的对象和数据层处理的对象通常都局限在一种语言中,当显示层换成另一种语言后数据层代码很难重用。

另外html中的脚本代码并没有消除,只是用tag做了一定的封装,这些代码是在服务器端执行,因此客户端的显示逻辑和服务器端还是有很强的关联。采用框架有时也使一些简单问题复杂化,维护成本比不用框架更高。

要解决显示逻辑和数据逻辑的分离,目前好的方法应该是服务器端将需要发送给客户端的数据用xml格式编码,客户端浏览器得到xml后解析它,将解析后的数据按照一定的格式在页面上显示,也就是说格式化数据在客户端做,而不是服务器端产生数据的时候,服务器端产生的数据不包含格式化信息,达到数据和显示解耦。

下面说明这种方涉及的技术:

浏览器要从远程服务器端获得xml数据,可在javascript脚本中用XMLHTTP来获得(XMLHTTP的使用方法见http://blog.csdn.net/indexchen/archive/2005/12/04/543209.aspx),得到xml数据后可用DOM来解析xml中的数据项。解析后的数据要显示在页面的控件中,只要利用HTMLDocument就可实现。页面上的元素都可在javascript中利用其方法和属性进行动态数据修改,这些操作都是在客户端执行,和服务器端无关。并且这些操作目前大部分浏览器都支持,无论是windows、Linux还是MacOS。

由于xml是平台和语言无关的,目前主流的语言和平台都对xml的处理有很好的支持,如果浏览器换为桌面应用,只是数据格式化在桌面应用中重新实现,服务器端不需要做修改。

这种方法的主要优点在于平台无关,实现简单,没有很难的新技术要学习,利用的都是已有的技术;能获得很好的用户体验,能在web中提高用户和系统的可交互性,可获得桌面应用才有的富客户端的特性(Rich Client)。

和所有技术一样,这种方法也不是万能药,不是所有的web应用都适合,它主要用在交互性需求教多的情况,采用时还需要根据其他条件进行评估。不要以为手里有锤子,就认为满世界都是钉子。

阅读更多
换一批

没有更多推荐了,返回首页