开发保留标准的浏览器功能的AJAX应用
发布时间:2008-02-03 14:03:00
AJAX应用因为它们的表现力的丰富、更加互动和更加迅速的响应得到了赞扬声;这些优点都是通过使用XMLHttpRequest对象来动态的载入数据而获得的,而不是重新载入新的页面。在大量的宣传和刺激中,却有一些批评的声音指出,AJAX应用破坏了一些重要的浏览器特性,这其中包括对前进/后退按钮的支持。
本文首先解释了为什么除非明确的将那些功能做进AJAX应用,否则前进/后退按钮和其他一些浏览器功能不能正常工作。然后简单的列出开发者如何解决上述问题,最后我们将详细的看一看Backbase AJAX引擎是如何提供对前进/后退按钮和其他一些浏览器功能的支持的。
AJAX应用需要一个后退按钮吗?
AJAX许诺允许开发者仅仅使用标准的浏览器技术开发有更好用户体验的和高度互交的WEB应用,这种技术常常是指DHTML。
以前,开发者常常不得不在rich和reach之间做出选择;前者是指具有高度互交性的交互式的用户接口,后者是指一个运行在所有WEB浏览器上的、不用额外的安装机制的前台终端。AJAX应用将使得前台终端既“rich”又“reach”。
但是到底什么是真正的一个界面“rich”的含义呢?而什么又是一个应用“reach”的含义呢?
“rich”的概念不容易定义,但是容易被直观的感受。如果你看到一个“rich”界面,你将明白什么是“rich”界面。桌面应用像微软的Office就是一个“rich”的界面。一个“rich”的界面使用先进的UI控制技术,如Tabs和上下文菜单。它们提供前进的互交手段,像当它们获得焦点的时候,UI元素的drag-and-drop和highlighting。传统的浏览器应用不是“rich”的。它们被限制在一些简单的控制器里,像Form,而交互只是简单的依靠点击链接到一个新的页面。看看微软的email客户端就能看出其中的差别:Outlook是“rich”的,而hotmail则不是。
AJAX应用因为它们的富有的表现力而得到表扬,Google的Gmail就是一个经常提及的例子。其他的Google所做的AJAX应用,如Google Suggest和Google Map。微软即将发布的Web mail客户端,代号为:“Kahuna”,或者Backbase RSS Reader也包含了高级的控制器和互交的模型。看一看Dan Grossman的列表:Top 10 Ajax Applications,那里是一些激动人心的关于“rich”界面的列表。
因此我可以得出结论,AJAX应用很明白的满足“rich”的概念。但是它是否满足“reach”呢?
在AJAX应用的绝大多数基本表单里,如果界面运行在一个WEB浏览器里,那么这个应用是“reach”的。AJAX应用是基于标准的浏览器的,因此能够被一个浏览器所访问。
但是,仅仅被浏览器所理解还是不够的。Jakob Nielson在他的文章Flash: 99% Bad里,指出Flash:“破坏了WEB的基本的交互风格”。在使用WEB应用的时候,终端用户期望一个确定的交互风格。应用需要提供传统的WEB交互风格,并且提供如下的可用性特性:
必须提供“后退/前进”按钮,用户能够浏览网页历史纪录
用户能够使用书签
必须提供Deep links,以便用户能够将其通过email发送给朋友或同事
必须提供“刷新”按钮,用来刷新当前状态,而不是通过重新初始化应用来获得
开发人员可以通过使用“view source”来查看源代码
终端用户能够使用“find”来搜索页面
搜索引擎能够对网页编索引,能够产生一个Deep link来搜索它们
看一看10个顶级的AJAX应用,表明大多数的当前AJAX应用的确破坏了WEB的基本交互风格。在接下来的部分里,我们将看一看为什么很多的AJAX应用会这样。
猜你喜欢
- 设计首页的第一步是设计版面布局。就象传统的报刊杂志编辑一样,我们将网页看作一张报纸,一本杂志来进行排版布局。虽然 * 页技术的发展使得我们开
- 如果程序中没有设置session的过期时间,那么session过期时间就会按照IIS设置的过期时间来执行,IIS中session默认过期时间
- 常用的四种SQL命令:1.查询数据记录(Select)语法:Select 字段串行 From table Where 字段=内容例
- 昨天,系统管理员告诉我,我们一个内部应用数据库所在的磁盘空间不足了。我注意到数据库事件日志文件XXX_Data.ldf文件已经增长到了3GB
- isnull在数据库查询中的应用,特别是再语句连接的时候需要用到 比如连接时候,某个字段没有值但是又要左连接到其他表上 就会显示空, isn
- 一、XML产生的背景 XML同HTML一样,都来自Standard Generalized Markup Language, 即标准通用标记
- 最近一直在研究 Javascript 相关的技术。在《Javascript 高级程序设计》有篇章节着重阐述了优化 Javascri
- 以下是一个类文件,下面的注解是调用类的方法注意:如果系统不支持建立Scripting.FileSystemObject对象,那么数据库压缩功
- 代码如下:<% '隐藏并修改文件的最后修改时间的aspshell '原理:通过FSO可以修改文件的
- 开发web应用程序是一件非常辛苦的事情,你需要花大把大把的时间来做无数的事情。假如你不运用有条理的方法,尤其是在复杂的项目中,你会承受忽视项
- HTML5 中 div section article 的区别刚刚开始接触 HTML5 时,对它的标签很不适应,甚至一度有点反感。尤其是对
- 之前有写过一篇浏览器的tab设计,这回说说网站的tab设计。一说到tab很自然地就想到了导航、信息架构。随着网站信息结构的复杂化,选择tab
- 最近在着手支付宝个人版改版的项目,正好在一些国内知名的SNS网站上分别注册了帐户进行体验。显然一点,国内的SNS都带有Facebook的影子
- 这段时间写了很多页面代码,除了一些知识重复以外,也学到css的一些新东西,或许是旧东西,但是还是希望能对大家有用。其实在css里面有很多对a
- 如何用组件实现自动发送电子邮件?我想做一个能够自动发送电子邮件的程序,该如何做? 这就要用到w3 upl
- 本人曾经用过的备份方式有:mysqldump、mysqlhotcopy、BACKUP TABLE 、SELECT INTO OUTFILE,
- 如今,基本每个网站都会需要到Tab切换展示内容的滑动门效果应用,这种效果可以在更少的页面空间内,展示更多的网站内容,节约空间,方便用户集中操
- 为什么要用flash呢?动画流畅,视觉效果好缓存能力强那使用flash有什么问题呢?需要Flash播放器在M$的补丁打遍天下之前IE有那神奇
- <?php/*======================================事务处理==================
- gchart是基于google图表API的jquery组件。使用gchart可以方便地生成强大的各种图表和报表。基于google图表接口的g