`

AJAX到底带给了我们什么?

阅读更多

我是一个坚定的B/S的支持者,我也深信不疑Web将会统治未来,成为未来90%以上的信息发、布获取渠道[有人也许会说那是电视报纸,报纸我不敢攻击,不过电视未来很可能是IPTV)。未来大家不会在意操作系统这个平台,大家不会去争论你用Windows,我用Mac,他用Linux(虽然我用过两年的Linux并且很喜欢它,不过它真的对普通用户难有吸引力),或者是她用iPhone/gPhone。这些都不重要,重要的是我们都可以通过Web获取信息,获得应用。如果说未来有一个平台,那就是IP/HTTP/WEB/Browser。

 

      回想一下在AJAX流行之前的网页是什么样子的?可能大家不记得了,其实我也不记得了。不过那时候很难想象Web应用可以做到今天这种程度。虽然Web应用还是比桌面应用的交互性差,可是现在可以说使用起来已经很方便了。我觉得Google Office, Gmail这些应用的可用性,基本上我觉得可以称的上不错了。这些,其实都要感谢AJAX在背后的贡献。那么AJAX到底给我们带来了什么呢?

 

       通过这一个多月的开发经历,我深刻体会到AJAX给了你一种能力,让你的Browser表现的像一般地客户端,和服务器交互;不,还给了你一种全新的方式,来思考设计和开发你的Browser应用。其实,只不过以前我们做CS开发的时候,Client我们是跑在操作系统或者虚拟机上的,和服务器之间一般跑着私有的自己设计的协议。很多都是直接在Socket/TCP之上自己设计的协议。而AJAX,给了我们一种方法,让我们的Client跑在Browser里面,协议是在HTTP上自己设计的私有协议。

 

       也许,在开发方式上观念的转变远没有设计角度转变那么深远,我觉得AJAX带给我们的是一种全新的视角去设计我们的Web应用。随着JS框架对AJAX越来越强大的支持,我们可以将更多的精力放在用户体验上面。其实这就是AJAX或者说Web2.0的初衷,用户的体验。也是所有做软件人的终极目标,给人们更好的体验。

 

       也许空说大家没有什么感性的认识,那么我们来举个例子。我们有个简单的应用,就是要呈现给客户他的聊天记录。我们看过很多聊天记录的展现方式。譬如QQ/MSN,不过我发现他们有个共同的问题,就是是以Message为单位的。这样做固然很简单,可是,可是其实每条消息它都是有上下文的,所以最好的方法是以Conversation的方式来展示聊天记录。每个Conversation有参加者,时间(开始时间就可以了),Tag(Label)。然后你点开每个Conversation条目,就可以看到这个Conversation里面的聊天记录。如果是以前,我们可能需要每次点击Conversation条目,然后就需要后台返回一个新的页面。这样速度慢,流量大不说,关键是每次刷新的那种感觉对用户很糟糕。而有了AJAX,我们把所有的Conversation条目存在内存中,用户点击一个条目,通过AJAX获得这个Conversation的Message,然后存到内存中,然后展现给客户(我们可以用很漂亮的动画展现)。当客户点击下一个Conversation条目的时候,上一个条目的Message仍然保存在内存中,下一次如果它再点这个条目的时候,我们就不需要到服务器去取了。[当然要注意内存耗费太大的问题,可以定期清理]      

 

       不过AJAX也有一些缺点。首先就是复杂,大家可别小看这个缺点,复杂就意味着更容易犯错误,更多的Bug,对老板来说就意味这要花更多的Cost;其次就是不能滥用。这有两方面的意思。一就是不要一个页面N多地方都不定时的给后台发送请求,你可以重构这样的设计;二就是要让AJAX真得提高用户的体验,而不是你在那里眩酷,这没有意思;三,我们是在浏览器里面做东西,和客户端还是不一样。譬如一个case,有些应用客户端需要注销。如果你自己做得Client,你可以在点击关闭按钮的时候,做注销的事情。如果服务器那边返回注销成功,你就让客户端退出;如果不成功,你就可以让客户端再注销一次。可是这个在Browser里面你就不可能了,客户关闭窗口,你是可以得到Window.onunload事件,可是你没有机会去判断你的结果;最后一个缺点也是天然的缺点,Http是单向的,也就是服务器没办法以中断的方式给Browser发消息(我知道AJAX PUSH, COMET, Web Socket,可是他们本质上还是单向的Http)。

 

         接着这篇文章,我想说,可能未来Flash/SilverLight, WAP这种过度产品也会go to hell。HTML5(据说还要10年,不过我觉得有Google在,估计4年左右会现端倪)会是我们的未来。

 

 

分享到:
评论
2 楼 raozhengyong 2009-08-13  
缺点是有的,不过它的优点给我们在开发上却带来了很大的方便.
1 楼 冯冀川 2009-06-25  
期待着HTML5吧,现在的web标准确实越来越难满足我们的应用了,尤其还存在IE这种过时的浏览器。。。。。。

相关推荐

    SD大会精品讲座:利用AJAX/Java 技术建立高流量的即时双向沟通网站

    除了酷炫的外观和更好的使用者体验,AJAX还能带给我们什么?不需使用者更新或操作就可以即时地更新网页內容?主动发送信息给使用者?对,这些AJAX都可以做到!这些功能在即时资讯领域如股市报价、网页聊天等领域有着...

    Head First Ajax 中文版

    深入浅出Ajax(中文版)和其他深入浅出系列书籍一样,使用许多有趣的视觉刺激来保持我们大脑思考的兴奋。在您读完书中第一章后,不但能够掌握一个基于Ajax的简单应用程序开发,而且还能够了解怎样让一个混乱的项目走上...

    Ajax 四级导航菜单ASP+Access动态版

    Ajax与ASP网页交互动态添加删除数据一例 Asp+Ajax无限级联动下拉框菜单Access版 ASP 树形菜单TreeView 多样式版 Ajax仿iGoogle双击编辑、网页拖动完整实例 ASP+jQuery无刷新读写数据库操作 Ajax提交数据实例_Ajax+...

    Ajax实战(e文)

    Ajax开发者对于应该选择什么样的框架感到茫然无助,毫无疑问,Ajax in Action可以帮助你。本书是目前已经出版的唯一一本深入探讨Ajax开发中的架构问题的著作,这使得它显得卓而不群。如果不去深入研究Ajax开发中的...

    AJAX学习源码下载

    AJAX技术是一种能够将桌面应用程序的体验效果带给Web应用程序的技术。这种体验效果主要就是页面的无刷新数据交换以及页面无刷新改变内容。AJAX技术已经是动态网页必不可少的技术了,最著名也最经典的应用就是Google...

    Ajax4jsp基础

    Ajax4jsf 完全被结合到 JSF 生命周期中. 当其他框架仅仅给你访问Managed Bean的便利时,Ajax4JSF带给你 Action 和 Value Change 监听器,激活服务端验证,在Ajax请求-响应周期中的转化 这些功能

    post_ajax

    由于Ajax越来越火热,应用范围也越来越广,这种无刷新的WEB技术确实带给用户更多的方便和体验。我认为Ajax其实更应该是一种理念,不光只是一些技术的组合。它应该与RIA一样(或是RIA现阶段最好的体现),而非是一种...

    Jquery中ajax提交表单几种方法(get、post两种方法)

    ajax技术带给我们的是良好的用户体验,同时,使用jquery可以简化开发,提高工作效率,接下来,脚本之家小编给大家分享Jquery中ajax提交表单几种方法,需要的朋友可以参考下

    Jetty cometd(Continuation)学习笔记

    Jetty 7是Jetty奔向Eclipse后发布的第一个版本,本次的Jetty 7 RC2带给了我们一个十分诱人的新特性-支持跨域名Ajax请求。众所周知因为安全的原因,多数浏览器都限制了Ajax跨域请求和javascript加载的时候只能是与...

    rex_multiupload:使用许多功能在redaxo中实现最新的多个ajax文件上载功能。 不需要Flash。 甚至可以在智能手机上运行(最低iOS 6)。 nightstomp.com带给您的-法兰克福网页开发| redaxo | iPhoneiPad和Android系统等移动设备的专家

    此版本的新功能:使用Ajax实时编辑。 上传完成后,您可以修改任何元信息。 更改标题,说明或任何其他类型的元信息。 您也可以立即删除文件。 笔记: 现在,multiupload会记住上次同步的猫(行为就像您已经从...

    jsp+Hibernate+struts博客管理系统源代码(加载到MyEclipse就能够运行) Mysql数据库

    本设计为“基于Ajax的博客应用系统的设计与实现”,本博客系统的开发基于Ajax技术,采用异步通信,在不刷新整个页面的前提下局部更新页面数据,带给用户快速良好的交互体验。本系统将实现以下功能: (1) 博客来访...

    WordPress 主题 Minty 薄荷小清新个人博客HTML5自适应

    主题取名为Minty,希望能带给你清爽的浏览体验! 主题特性 HTML5&CSS3 使用语义化的标准代码构建,助你高效SEO 响应式设计 移动时代,手机、平板、电脑一样出众 Retina Ready 支持 Retina 视网膜屏幕显示 文章形式 ...

    RPS_GLOBALCHAMPION

    ERD:即将到来…… 线框: : 技术:Ruby、Ruby on rails、Javascript、Jquery、AJAX、Devise、Bootstrap、Paperclip、Capybara、Turbolinks、Postgresql、Selenium-Webdriver、Jasmine-rails、Rack-livereload、rb-...

    基于springboot的茶叶销售商城系统的参考论文

    这样不仅可以将方便带给用户,而且还可以为店家减少许多麻烦。店家也不必为店面的选择和装饰而困扰,更不需要雇佣员工,茶叶的线上销售不用再受到时间和地点的限制,方便操作,利润可观。 为了给消费者提供一个良好...

    原创Minty 发布v4(薄荷小清新|响应式设计|HTML5)WordPress主题模板

    主题取名为 Minty,希望能带给你清爽的浏览体验! 主题特性 HTML5&CSS3 使用语义化的标准代码构建,助你高效SEO 响应式设计 移动时代,手机、平板、电脑一样出众 Retina Ready 支持 Retina 视网膜屏幕显示 极速...

    基于BootStrap与jQuery.validate实现表单提交校验功能

    谈谈表单校验 ...现在社会坚持以人为本的理念,在网站开发过程同样如此。...其实正则并不难,并且在学会后能带给你极大的成就感,享受那种事半功倍的效果吧。 2.ajax异步请求 在验证用户名是否存在、用户登录时账

    基于Bootstrap+jQuery.validate实现表单验证

    其实正则并不难,并且在学会后能带给你极大的成就感,享受那种事半功倍的效果吧。 2.ajax异步请求 在验证用户名是否存在、用户登录时账号或者密码错误时给出相应的提示。 3.一些方便的验证库,比如jQuery.validate ...

    动易SiteWeaver CMS内容管理系统 v6.8 090612.rar

    SiteWeaver6.8 根据用户的反馈增加了大量、实用的新功能,比如匿名投稿,会员中心模板化,更新最新的IP数据库等等,相信能带给你一次全新的体验。 SiteWeaver6.8产品新功能列表: 匿名投稿功能 会员中心模板化 ...

    MolyX Board论坛程序 2.6.1 正式版

    MolyXBoard是厚建软件为用户带来的最强功能应用的论坛系统,...魔力论坛,正在带给我们前所未有的功能体验,而我们,仍在继续创造着魔力的 历史! ======================== MolyXTeam,Hogesoft 技术支持网站:http://ww

    source-analysis:记录本人对某些框架或插件的源码分析心得

    来源分析 记录本人对某些框架或插件的源码分析心得 ...阅读原文带给我的好处在实际项目开发中很明显,第一对框架的使用更娴熟,第二阅读以前的代码更多得心应手,第三写代码时想法更多,会有更多比较优化的思路。

Global site tag (gtag.js) - Google Analytics