些没有改变过的信息。 Ajax 不需要任何浏览器插件,但需要用户允许 JavaScript 在浏览器上执行。就 像 DHTML 应用程序那样, Ajax 应用
程序必须在众多不同的浏览器和平台上经过严格 的测试。随着 Ajax 的成熟,一些简化 Ajax 使用方法的程序库也相继问世。同样,也 出现了另一种辅助程序
设计的技术,为那些不支持 JavaScript 的用户提供替代功能。 对应用 Ajax 最主要的批评就是,它可能破坏浏览器后退按钮的正常行为。在动 态更新页面的情况下,用户无法回到前一个页面状态,这是因为浏览器仅能记下历史 记录中的静态页面。一个被完整读入的页面与一个已经被动态修改过的页面之间的差 别非常微妙;用户通常都希望单击后退按钮,就能够取消他们的前一次操作,但是在 Ajax 应用程序中,却无法这样做。不过开发者已想出了种种办法来解决这个问题,当 中大多数都是在用户单击后退按钮访问历史记录时,通过建立或使用一个隐藏的 IFR AME 来重现页面上的变更。(例如,当用户在 Google Maps 中单击后退时,它在一 个隐藏的 IFRAME 中进行
搜索,然后将搜索结果反映到 Ajax 元素上,以便将应用程 序状态恢复到当时的状态。) 一个相关的观点认为,使用动态页面更新使得用户难于将某个特定的状态保存到 收藏夹中。该问题的解决方案也已出现,大部分都使用 URL 片断标识符(通常被称 为锚点,即 URL 中#后面的部分)来保持跟踪,允许用户回到指定的某个应用程序状 态。(许多浏览器允许 JavaScript 动态更新锚点,这使得 Ajax 应用程序能够在更新 显示内容的同时更新锚点。)这些解决
方案也同时解决了许多关于不支持后退按钮的 争论。 进行 Ajax 开发时,网络延迟——即用户发出请求到服务器发出响应之间的间隔 ——
需要慎重考虑。不给予用户明确的回应 ,没有恰当的预读数据 ,或者对 XMLH ttpRequest 的不恰当处理,都会使用户感到延迟,这是用户不欲看到的,也是他们无 法理解的。通常的解决方案是,使用一个可视化的组件来告诉用户系统正在进行后台 操作并且正在读取数据和内容。 一些手持设备(如手机、PDA 等)现在还不能很好的支持 Ajax; 用 JavaScript 作的 Ajax 引擎, JavaScript 的兼容性和 DeBug 都是让人头痛的事;
Ajax 的无刷新重载,由于页面的变化没有刷新重载那么明显,所以容易给用户带 来困扰――用户不太清楚现在的数据是新的还是已经更新过的;现有的解决有:在相 关位置提示、数据更新的区域设计得比较明显、数据更新后给用