大家好,欢迎来到IT知识分享网。
现在很多C/S系统都转成BS系统。因为BS方便易用,只要能上网、打开IE就可以(不少单位、公司的OA都建立在BS结构上)。无须在客户端再安装什么,即使需要修改和更新功能,客户端也不需担心软件升级的问题。
但BS系统的开发存在硬伤,由于非编的代码使效率不高,另外更重要的是,BS很难实现C/S同样的功能。简单举个例,要实现一个树形目录,delphi就只需要拉入控件与设置属性,可在BS代码中就很难想像其复杂度了。因此,将做BS系统与做网页等价,是非常不恰当的。网页只是平面的设计,BS系统需要懂得比C/S更丰富的语言,和更烦琐的步骤,才可实现。也有开发商集合两者优点,使用界面BS,系统设置直接用C/S连接数据库。
所以,以往大型的BS系统都基于java或activeX的强大支持。近年网络越来越多论坛和blog,使基于php或者asp的BS系统也越来越多。这种架构之上的更多技术便应运而生。例如ajax、jquery、ext,甚至borland也搞个php4delphi,用C/S模式设计出BS的系统。
其中ajax严格来说不能算一项技术,只是让javascript等脚本语言调用xml的接口(因为接口是html支持的,所以vbscript也可以,不过就该写成avax),实现不刷新网页也可以与服务端(数据库)通信。由于它没有封装或整理,从建立对象实例、到参数返回都需要自己逐句写,十分麻烦。但它功能强大,应该十分广泛,例如很多blog的回复,不需要刷新页面便已经将内容提交数据库,便是使用ajax。他们把这一系列功能语句封装成类,每次调用也很方便。
jquery也是现时比较普遍的技术,它基于javascript,所以是运行于客户端。用法就好像javascript混合css。jquery非常系统地将所有类和方法属性封装了,使用方便,但所有语法要重新学,有如学习一种新语言。又因为它基于脚本语言,效率非常低。例如有一个基于jquery的日历,我这台双核2.8CPU+1G内存的机子,翻去下月的速度也要一秒。
ext还是比较复杂,一大堆类跟函数,可功能十分夸张,能轻松做出grid、tree等效果。
在这些基础技术之上,许多人会创造自己的控件。例如一个叫thickbox的家伙,实现页内弹窗(实际是一个层,并非真正IE窗口),可以弹出图片集、文字、iframe、甚至ajax引用的页面。用法也非常方便,html头引用过jquery库、thickbox库和thickbox样式表后,在激活弹出事件的按钮或者<a>的link加上thickbox的class就可以了。若深入研究它的代码,除了直接在link中激活使用,还可以用javascript等脚本调用,实现程序自动判断情况,控制弹出、关闭。假设我有一堆订单的列表,每一行有[修改]功能,按下按钮便可以调用thickbox弹出一个页内[修改对话框],当修改订单份数等等内容后提交,通过ajax通达数据库,此时程序就要判断提交完成,由程序触发关闭thickbox的事件。会用到TB_remove这一函数,由于弹出的层属于列表的页面,所以这函数需要写成:parent.TB_remove() 。若在脚本控制弹出则更困难,需要使用类似这样参数的一个函数:tb_show(“提示信息”, “openwin/infoTg.html?tgCount={$tgcount}&keepThis=true&TB_iframe=true&height=80&width=180”, false)。
由此,BS发展出更多技术,这些技术之上也开发出不少控件。BS的开发就越来越接近C/S的方式:引用控件,简单设置一些属性。只是引用的方式稍微欠缺可视化。当要使用控件封装内部的基本功能时,也象C/S一样,研究控件的源代码。也因为BS本来就基于代码,学习使用的人都要从基础学起,没有C/S的可视化编程,所以研究控件代码其实更省事。C/S由于习惯了可视化(我们俗称砌积木),对根本的类和继承的认识都非常薄弱,假如要研究delphi或vb的控件就不是人人都可以做到。虽然BS开发越来越容易,但学习新的技术和新的控件亦耗费不少精力与时间,很多技术也未能完全模仿C/S的能力,BS结构的项目开发似乎还有很长的路要走。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/23933.html