文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 国产软件 | 国外软件 | 汉化补丁 | 设为首页 | 加入收藏
业界资讯 | 图形图像 | 操作系统 | 网络冲浪 | 工具软件 | 办公软件 | 媒体动画 | 精文荟萃 | 认证考试 | 网站建设 | 技术开发 | 专栏
当前位置:abcdown网络学院网络编程Ajax带镣铐的舞者:从两方面看AJAX与B/S
精品广告
推荐TOP10
·Ajax的一些有用的小技巧
·ajax的server部分(php版)
·AJAX应用篇:必须用到和不必使用的地方
·AJAX使用技巧:如何处理书签和翻页按扭
·在Web2.0下的十大AJAX安全漏洞以及成因
·实例:AJAX编写用户注册实例及技术小结
·警告!Ajax技术的安全问题不容忽视
·AJAX如何与后台交互
·Ajax优于JSF的原因
·Ajax标签导航效果
阅读TOP10
·Ajax无刷新实现图片切换特效
·Asp.net Ajax 中的脚本错误: Sys未定义 的解决方法
·ASP.NET 2.0 AJAX中Webservice调用方法示例
·Ajax程序中,自己实现页面前进、后退、与标签功能(asp.net2.0)
·ajax下RegisterClientScriptBlock使用
·基于AJAX的ASP.NET聊天室-如何建立共识
·Ajax+GridView+Xml的简易留言薄
·Ajax:拥抱JSON,让XML走开
·基于PHP的AJAX技术实现文件异步上传
·如何在ASP.Net Ajax中调用WebService

带镣铐的舞者:从两方面看AJAX与B/S

日期:2007年8月16日 作者: 查看:[大字体 中字体 小字体]


  近来遇到了这样的一个应用场景,某企业多年以来一直使用PowerBuilder开发的系统,随着公司的发展,决定将老的信息系统由C/S转为流行的B/S架构,于是问题出现:原有系统有大量的数据录入、精确报表打印等功能,而且用户都已非常习惯这种操作,希望新系统能保留原有系统的这种使用方便的特性。

  我一听到这个问题就头痛了,PB有一大堆功能强大的控件,要搬到浏览器里,用网页来模拟实现,太困难了。

  1、B/S为何难于提供好的用户交互体验?

  这里头的最大问题有几个:

  (1)无状态的HTTP协议

  Windows窗体间可以通过内存直接交换信息,但作为B/S架构通讯基础协议的HTTP是无状态的。

  如果将浏览器看成是客人,Web Server看成是旅馆,在HTTP协议的管理之下,会出现这种情况:不管某客人来访多少次,Web Server都将其视为第一次的访客。这样一来,客人每次都得带齐身份证件供旅馆工作人员“验明正身”。

  HTTP协议的无状态,导致Web Server的“六亲不认”,这固然能增加Web Server的吞吐量,却给应用系统的开发带来了麻烦。因为应用系统中往往有许多业务处理流程,天生就是信息流转的,即原始数据从一端进去,从另一端出来时应该已经过某些处理,怎可想象整个业务流程中的信息会流失?于是,在HTTP各请求间共享信息就成了件麻烦事,这就是HTTP请求的“状态保持”问题。每个B/S系统都必须解决这个问题。微软想了一些“歪招”,比如充分利用HTML网页的中隐藏域,再在Web Server上做些手脚,于是ASP.NET拥有了一套在各个HTTP请求之间维持状态的技术:Session,Cookie,ViewState,Profile,Application。

  然而问题并没有完全解决。比如,C/S系统中常见的收集用户输入信息的对话框,主窗体与对话框之间有着信息的交换(又分为两种:模式的和非模式的,前者对话框不关掉,主窗体不能被激活),在B/S架构之下,由于浏览器的每个请求是独立的,要在两个独立的浏览器窗口间实现类似于模式对话框这种直接的信息交换,我还真不知道该怎样干。

  AJAX使用以下这种的方法来“摸拟”出模式窗体:将主窗体与对话框“合二为一”,对话框在HTML中就是一个div元素,平时是隐藏的,需要时再显示它。微软的AJAX Control Toolkit中甚至为这一功能设计了一个控件。诸如此类的小伎俩,在B/S开发中不胜枚举。

  可以看到,许多在C/S轻而易举就可实现的功能,在B/S中要实现则大费周章。

  (2) 特殊的运行环境——浏览器

  B/S系统的前端运行环境是浏览器,这就带来了诸多的限制,不能干许多事,比如直接访问硬件(例如打印机),也无法充分利用硬件的资源。例如,现在的新电脑都是双核的,你能直接用JavaScript加HTML写出一个多线程程序以充分利用这两颗“奔腾的芯”?

  而C/S系统则直接运行在OS(操作系统)之上,可以调用OS提供的所有功能,这种限制就不存在了。

  (3)尴尬的Web客户端编程语言——JavaScript

  传统的C/S程序,可以使用为数众多的各种开发语言,尤其是象C++,Java,C#之类主流面向对象语言,功能强大,使用方便,各种开发工具齐备,已非常成熟。

  与此相反,B/S前端所使用最多的编程语言JavaScript,不仅不让人喜欢,甚至让许多程序员“恨之入骨”,将“用JavaScript编程”看成是件苦差事。

  让我们来看看JavaScript的两大硬伤。

  首先,缺乏清晰而统一的编程模型。

  JavaScript虽然名字中有一个Java,并采用了类似的语法,但与真正的Java并无关系。唉,她本身是一只丑小鸭,总想着攀上天鹅这门亲,却没想到别人并不买账。

  JavaScript用到了许多对象,但说它是面向对象的吧,又实在难以令人信服(面向对象编程的基本单元是类),比如它没有类似于C#等主流面向对象语言的关键字class,到处是一个个的函数,这就使所有的代码难于以类的方式清晰界定;同时,它又不是结构化的(结构化编程的基本单元是函数),因为浏览器在解析HTML文档时,是采用流式解读方式,从而导致一些JavaScript代码被放在函数之外,在解析HTML文档时直接执行,而另一部分放到函数中的代码,则多采用事件驱动的方式运行,这就带来了复杂的程序执行流程,远不如纯结构化编程中统一采用函数调用的编程方式简洁。


[1] [2] [3] [4] 下一页 

上一篇:Hibernate的检索策略小结

下一篇:Flash教程:纯AS制作简单的MP3播放器


相关软件: 相关文章:
·水晶热带鱼缸时钟屏保
·杨小琳-你带来一片温柔DSD
·Google Earth 动态卫星地图 汉化版 带我们进入间谍时代 能看见你家院子
·10套韩国FLASH特效带fla源文件
·Ghost xp 装机店专业装机软件 八分钟装机还附带常用软件
·五月天 :《摇滚本事-电影音乐原声带》
·3d魂斗罗之灭绝地带
·性感妩媚! 镂空真丝内衣吊带丝袜美女
·吴绮丽带成龙私生女露面(图)
·中国地区三级联动下拉菜单代码和示例(附带代码下载)
·windows2003+iis6.0安装配置实用教程一(带图片)
·Win XP优化设置和宽带应用技巧
·性感中带着清纯! 做女友逛街最有面子
·河南网通宽带共享:破解河南网通宽带共享完全版

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.abcdown.net
首页 | 本站声明 | 下载帮助 | 发布软件 |
中文版权所有:ABC学院 浙ICP备05000717号