首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

在应用程序中使用 Ajax 的时机(2)

在应用程序中使用 Ajax 的时机(2)

释放 Web 页面的信息您可能已经注意到了,Internet 还有另一个重要特征:似乎可以访问无限量的信息,而无需在本地机器上进行复制。有了 Ajax,您可以构建一个与某个巨大数据库(无论它位于全球的哪个服务器)连接的互动界面,实现前所未有的功能。
Google Maps 就是这种 Ajax 应用程序之一,它集中体现了开发人员和用户的想象力。在这个 Web 站点上,您可以浏览整个地球的地图和卫星照片,而无需刷新页面。以这种方式释放数据可能是 Ajax 最具价值的潜在用途。
在 Google Maps 出现之前,地图网站已经出现了很多年,但是 Google Maps 是与众不同的,因为 Ajax 所允许的界面是前所未有的。在传统的地图网站上,将视图向西移动需要单击一个链接。然后出现一个新页面,它包含生成的调整后的地图。所以必须等待页面清除,再次加载,然后滚动到该地图。
这种糟糕的界面是由 Web 的根本局限性导致的。获取 Web 服务器数据的惟一方式是访问一个新的 URL,然后下载包含新内容的新 Web 页面。如果希望查看当前视图任何微小更改(比如向西移动一点),必须加载整个新地图。由于 Ajax 允许在后台异步获取数据,因此无需清除和加载整个页面。只需要加载地图的数据和图片碎片。也可以为特定的地图视图生成 URL,但这不再是加载更多信息的惟一途径。
您可以使用 Web 页面作为许多其他场景数据的界面。考虑一个分页场景,比如查看分为很多页的搜索结果时。用户界面控件(比如上一页下一页)不需要每次都加载整个新 Web 页面。使用 Ajax,您可以异步加载下一页的结果,并相应地更新页面。甚至可以预加载下一页,以便在用户希望查看时立即显示。
通过文档与信息的分离,还可以加快速度并节省带宽。大多数情况下,可扩展标记语言(XML)或者 JavaScript Serialized Object Notion (JSON) 形式的原始数据比 Web 页面的 HTML 表示形式要小,特别是页面的剩余部分(比如标题、导航、脚注尤其明显)。
将信息留在 Web 页面上Ajax 打开了从 Web 服务器获取原始数据的方便之门,但这并不意味着您不再需要老式的 Web 页面。用户能够通过 URL 访问数据片断很重要,因为这样才能与他人分享。
Ajax 还能让搜索引擎抓取您的站点。针对搜索引擎对站点内容进行优化不仅仅是为了将用户吸引到站点中,它同时也是一个可用性问题。您也许通过搜索引擎找到了大多数要用的站点,也可能只使用大多数站点的一两个页面。如果站点提供的内容被隐藏在 Ajax 技术背后,那么搜索引擎将无法搜索到,从而世界上大多数人都无法找到您的站点。因此让站点的信息可以通过传统的 HTML 页面浏览非常重要,即使还可以通过 JSON 或 XML 浏览。
Ajax 可以拯救站点Web 用户界面通常能够让用户在 Web 服务器上保存数据,或者轻松创建、更新、删除条目。 当然,这些任务总是能够通过 HTML 形式实现,但是 Ajax 能更加便捷地在后台异步发送数据。试想使用 Ajax 和 JavaScript 代码简化添加、编辑和删除内容,它们使条目列表的管理变得更加简单。还可以增强单个条目的添加,比如在消息板上编写,只需要使用 Ajax 向服务器发送消息,然后使用 DOM 脚本将消息立即添加到页面。
Ajax 可以毁灭站点大多数用户不希望 Web 站点使用 Ajax;很多用户甚至从未听说过 Ajax。因此,在使用 Ajax 设计页面时,一定要确保程序与目标用户能够交流。例如,如果使用 Ajax 向服务器提交一个表单或发送数据,则在发生以下动作时,应用程序必须与用户进行交流:
  • 正在发送或获取数据时。此动作常常通过动态图片指示,比如一个旋转指针,或者通过短语 “Loading…” 或 “Saving…” 指示。
  • 成功发送或获取数据时。可以显示 “Success” 消息,也可以使用 JavaScript 动画将用户的注意力吸引到页面的特定部分。
  • 与 Web 服务器对话过程中出现错误或超时。通常给出一条解释消息,提示用户再试一次。
如果应用程序无法交流,则用户将不知道到底发生了什么事情。如果单击 Form Submit 按钮时什么也没有发生,则用户会认为 Web 站点出了问题。如果应用程序无法提示发生了错误,则用户一般会认为他们的操作成功。如果实际情况是没有成功,那么用户的这种假设可能导致极度的失望,尤其是花了很长时间完成表单内容时。如果应用程序在出现问题或超时通知用户,至少用户还有机会进行复制粘贴,在本地保存数据,从而避免了最糟的用户体验。
寻找 Ajax 力量的平衡点渐进式增强 —— 黄金法则:
为了帮助确保应用程序的设计能提供最好的体验,最好遵守渐进式增强的黄金法则:首先不用任何 JavaScript 代码开发,然后在站点开始运行后添加 JavaScript 代码。

Ajax 使 Web 创新成为可能,但同时增加了违背用户意愿的可能性。请记住,在向站点添加 Ajax 的同时,您也必须为用户修复它导致的任何问题。
渐进式增强 是一个 Web 开发战略,它能确保所有的内容和功能可用于所有的浏览器,但是也支持更加先进的 Web 浏览器利用 JavaScript 编程和 Ajax 创造更好的用户体验。为了帮助确保应用程序的设计能提供最好的体验,最好遵守渐进式增强的黄金法则:首先不用任何 JavaScript 代码开发,然后在站点开始运行后添加 JavaScript 代码。从根本上说,您构建一个基本的 Web 站点,让实际链接和表单都指向真实的 URL。然后,使用 JavaScript 编程和 Ajax 更改这些链接和表单的功能。
例如,假设您希望有一个评论表单能够使用 Ajax 提交评论,并能更新页面以在合适的位置显示评论,所有过程都不需要刷新页面。首先,像往常一样构建评论表单,不使用任何 JavaScript 代码,保证它能正常运行。接下来,向表单添加一个 JavaScript onsubmit 事件。表单提交时,使用 Ajax 将评论保存到服务器,使用 DOM 脚本更新页面。这样一来,对于不支持 JavaScript 语言的 Web 浏览器表单也能运行良好,对于更先进的 Web 浏览器将会运行的更好。
developerWorks Ajax 资源中心
访问 ,这是一个一站式中心,包含用于开发 Ajax 应用程序的免费工具、代码和信息。在 Ajax 专家 Jack Herrington 维护的  中可能有您正在寻求的问题的答案。

有些 Web 站点完全使用 JavaScript 代码和 Ajax 构建,我建议在任何情况下都应该避免这样做。构建这样的站点意味着将一部分潜在的网络人群排除在外,而且不仅仅是选择禁用 JavaScript 语言支持的用户。同时被排除在外的还有搜索引擎,以及在 Web 上进行搜索的人。此外,使用未经测试的设备和浏览器访问站点内容的潜在用户也被排除在外。请记住,对于纯 JavaScript 站点,最微小的 JavaScript 错误也会导致整个站点的损坏。如果有非 JavaScript 站点的支持,就可以确保不会阻挡任何潜在用户(和潜在客户!)访问您的内容。
结束语Ajax 彻底颠覆了开发人员构建 Web 应用程序的方式,其结果可好可坏。重点在于要确保选择在应用程序中包含的 Ajax 增强能提高用户体验。尽可能避免出现令人混淆的、不可预计的,以及让人失望的情形。对于许多开发人员,这些决策可能关系着公司的成败。
返回列表