开发保留标准的浏览器功能的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应用会这样。

标签:ajax,浏览器,XML
0
投稿

猜你喜欢

  • ASP分页函数

    2009-07-06 12:41:00
  • SQL Server 作业的备份(备份作业非备份数据库)

    2012-07-11 15:58:49
  • sqlserver通用的删除服务器上的所有相同后缀的临时表

    2012-06-06 20:07:34
  • 利用GAE&Google Gears做了一个简单的AJAX代理

    2009-04-29 12:42:00
  • [奇招] JS暴虐查找算法

    2008-07-06 21:17:00
  • “您无权查看该网页”的原因和解决方法

    2008-03-24 16:57:00
  • MYSQL数据库表设计与优化(二)

    2010-10-25 20:12:00
  • javascript对象概念大全

    2009-05-22 18:24:00
  • asp源码实现Access数据库的建立或压缩

    2007-08-06 16:54:00
  • rs.getrows的使用方法

    2008-04-05 14:01:00
  • 我的栅格系统实现

    2008-09-21 13:50:00
  • 在asp里通过以下两个函数实现javascript里的escape函数和unescape函数功能

    2010-03-14 11:30:00
  • 如何绝对获知浏览器类型?

    2009-12-16 18:58:00
  • 讲解SQL Server安装sp4补丁报错的解决方法

    2009-04-11 17:39:00
  • MySQL数据库中的各种乱码及其解决方法

    2008-12-17 16:29:00
  • asp生成带日期的随机数

    2008-09-03 13:13:00
  • 页面表达常用方式

    2010-05-27 12:42:00
  • Iinternet Explorer浏览器简介(IE)

    2009-02-05 20:59:00
  • Mootools 1.2教程(11)——Fx.Morph、Fx选项和Fx事件

    2008-12-04 16:03:00
  • MySQL Order By语法

    2011-01-04 19:58:00
  • asp之家 网络编程 m.aspxhome.com