`

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这种过时的浏览器。。。。。。

相关推荐

    Head First Ajax 中文版

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

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

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

    H5移动端上滑加载,带ajax异步请求后台数据,拿来即用

    在移动互联网时代,H5(HTML5)技术已经成为构建移动端应用的重要工具,它以其跨平台、易维护的优势受到开发者们的青睐。...通过合理的优化和实施,可以在不牺牲性能的前提下,带给用户流畅、连续的浏览体验。

    Ajax实战(e文)

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

    AJAX学习源码下载

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

    Ajax控件 搞好无刷新

    在本篇文章中,我们将深入探讨Ajax控件以及如何利用它们实现无刷新功能。 **一、Ajax控件的概念** Ajax控件是一类基于JavaScript和Ajax技术的服务器端控件,它们能够与后台服务器进行异步通信,无需重新加载整个...

    ajax的帮助文档地方

    在描述中提到的"快乐圣诞节快乐就是ajax"可能是以一种轻松的方式来比喻Ajax带给用户的一种愉快和即时的交互体验。就像电视剧带给观众的快乐,Ajax通过快速响应和无缝的数据交换,让用户在浏览网页时感受到类似的流畅...

    Ajax分页 无刷新分页

    Ajax分页技术是一种在网页上实现无刷新分页的方法,它极大地提升了用户的浏览体验,减少了...通过Ajax分页,我们可以构建出更加流畅、响应迅速的Web应用,同时利用页面缓存策略提升性能,带给用户更优质的交互体验。

    集成 Flex 与 Ajax 应用程序

    这使得 Flex 可以利用 Ajax 应用程序的动态特性,同时将富媒体和图形功能带给用户。 集成 Flex 和 Ajax 的优势在于: 1. **丰富的用户体验**:Flex 提供了高质量的动画、图形和组件,可以增强用户界面。 2. **性能...

    post_ajax

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

    用ajax实现新闻滚动 一个一个滚动

    通过Ajax技术,我们可以实现在不刷新整个页面的情况下,让新闻一条条地平滑滚动,带给用户更加流畅的浏览体验。本文将详细介绍如何运用Ajax来实现这一功能。 【知识点详解】: 1. **Ajax基础**:Ajax...

    GreyBox Ajax无刷新弹出层插件 v5.5

    GreyBox 的核心功能是通过Ajax技术实现页面内容的动态加载和显示,它在弹出一个全屏或半屏的窗口时,能够以动画效果展示内容,从而带给用户更为流畅、直观的操作体验。 首先,我们来深入理解一下Ajax技术。Ajax...

    Ajax无刷新联动的一个实例

    在"Ajax无刷新联动的一个实例"中,我们可以看到这一技术如何在实际应用中发挥效用。无刷新联动意味着用户在操作网页时,如下拉选择、点击按钮等,页面内容会即时更新,而不会像传统方式那样整个页面刷新,保持了用户...

    ColorBox灯箱,jQuery相册查看控件,仿QQ相册,ajax

    这款插件的设计灵感来源于QQ相册,它成功地将QQ相册的查看体验融入到网页交互中,通过Ajax技术实现了内容的无缝加载,从而带给用户更为流畅的浏览体验。 ColorBox的主要特点包括: 1. **简洁的API**:ColorBox提供...

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

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

    js仿微博功能,很好的效果

    在IT行业中,JavaScript(简称JS)是一种广泛应用于前端开发的编程语言,因其强大的交互性和灵活性而备受...通过熟练掌握这些技术和工具,我们可以创建出一个类似微博的互动平台,带给用户流畅且富有吸引力的使用体验。

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

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

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

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

    jQuery全屏页面滚动效果苹果官网页面上下滚动效果代码.zip

    在网页设计中,全屏页面滚动效果是一种常见的交互设计手法,它能带给用户沉浸式的浏览体验。这种效果常被用于企业官网、产品展示页或艺术类网站,以增强视觉冲击力和用户参与度。"jQuery全屏页面滚动效果苹果官网...

    基于Spring Boot+Vue的疗养院管理系统的设计与实现

    前端:Vue.js, Ajax 数据库:MySQL 5.7 开发环境:IDEA/Eclipse, JDK 1.8, Tomcat 8.0/9.0 项目特点: 采用B/S架构和MVC模式 完整展现现代软件工程精髓 适用于Windows和Mac平台 配套工具:SQLyog/Navicat, Google ...

Global site tag (gtag.js) - Google Analytics