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

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

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

邂逅 Ajax当使用 Asynchronous JavaScript + XML (Ajax) 开发技术增强的应用程序第一次出现在网上时,Web 开发人员肃然起敬。一夜之间,Web 站点和 Web 应用程序的潜在价值似乎变得无穷无尽了。过去,许多开发人员和用户认为,Web 站点和 Web 应用程序只是其桌面应用程序的一个粗燥、丑陋、复杂的版本而已。但见识了 Ajax 增强的应用程序和 Web 站点之后,开发人员和用户不约而同地意识到,在浏览器中可以做的事情超乎想象。随着如今的 Web 浏览器拥有了处理高级文档对象模型(Document Object Model,DOM)脚本和复杂层叠样式表(Cascading Style Sheets,CSS)的能力,需要创建一种能够更改、更新,以及通过与后台服务器对话立即响应的接口,而 Ajax 给这一任务划上了圆满的句号。但是,有时候由于太过兴奋导致了用户体验不太理想。
Web 开发的游戏规则已经改变了,许多开发人员一有机会就使用 Ajax 完成工作。许多站点甚至放弃了超文本标记语言(HTML),而转为完全使用 JavaScript™ 构建站点。
创新与可预见性
Ajax 使 Web 创新成为可能,但同时增加了违背用户意愿的可能性。请记住,在向站点添加 Ajax 的同时,您也承担着为用户修复它引起的任何问题的责任。

如果问一般的 Web 用户觉得 Ajax 技术怎么样,他(她)可能只会茫然的看着你。许多用户都不关心他们使用的网站的构建技术。他们对好的用户体验更感兴趣,即能够尽可能轻松地完成所需的工作,至于应用程序的具体结构,就让它安全地呆在后台吧。
本文分析 Ajax 的能力,同时探讨什么情况下使用 Ajax 将会弊大于利。希望您能从中获得灵感,能以从未想过的方式使用 Ajax,也希望您不至于因为构建一个流行站点而疯狂。
摆脱刷新没有比不停地刷新 Web 页面更加烦人的事情了。对于那些等着看自己是否赢得拍卖、关注比赛得分、密切关注天气预报的用户来说,Ajax 对这些类型 Web 页面的增强可以极大地提高用户体验。
在 Ajax 技术出现以前,已经可以使用简单的 JavaScript 代码实现 Web 页面的自动更新。但是,更新 JavaScript Web 页面需要刷新整个页面。这就是为什么 Ajax 技术在 Web 应用程序中的出现会对 Web 产生如此重大的影响。
用原来的方法刷新页面时,用户无法与之交互。Ajax 页面可以异步地(Ajax 中的 A) 向 Web 服务器请求数据,用户完全无法察觉后台正在处理事务。返回数据之后,只会更新部分页面。
Web 不需要实时自动更新部分页面使用户摆脱了刷新之苦,但对 Web 服务器架构却是一场灾难。如果 Web 站点一天只有 1,000 个访问者,Web 服务器也许还能够应付。但是如果该站点的每个 Web 页面每秒钟使用 Ajax 刷新一次,平均每个用户打开该页面 10 分钟,那么该站点每天的页面请求将暴增到 600,000 次。
为了避免 Web 服务器出现这种情况,开发人员一定要注意最小化更新频率。如果知道信息每隔几分钟才更新一次,可以尝试将 Ajax 请求调整为相同的频率。如果信息每秒更新一次,则可以考虑在不损害用户体验的情况下尽可能延长刷新间隔时间(比如,每 5 秒或 10 秒刷新一次)。
还可以提供一个简单的刷新链接,只有在用户需要时才触发 Ajax 调用。这类似于浏览器的 “刷新” 按钮,但是,如果只需获取一小部分数据,这种方法更加快捷,对 Web 服务器的要求更低。
小变化,大影响Ajax 的优势体现在对页面进行较小的修改和更新时。曾几何时,即使是微小更新也需要刷新整个 Web 页面。借助 Ajax 和 JavaScript 代码,页面能够几乎实时地进行更新。例如,可以让页面在添加新注释时更新注释列表、显示一个关于最新条目的纸条,或者实时显示进度条。
开发人员的关键目标应该是增加可用性,也就是方便用户。用户在等待页面做出反应时可能会觉得他们在浪费时间,在 Web 应用程序引入 Ajax 之前,许多用户更倾向于使用桌面应用程序,因为桌面应用程序更加快捷,反应更加迅速。Ajax 增强消除了等待和滚动时间,它使 Web 应用程序的响应能力达到了许多传统桌面应用程序的水平。
大变化,大灾难如果说对页面进行小的更改可以增强用户体验,那么大的改动(比如几乎或完全替换整个页面的内容)则可能让用户不知所措并导致不好的结果。
如果站点使用 Ajax 更新的速率过快,用户可能会以为后退前进按钮以及书签出现了问题。(Flash 站点与纯 Ajax 站点一样,也容易使人产生这种感觉。)用户希望可以单击后退按钮返回上一页或上一个视图。更加不利于用户体验的是,当用户再次单击前进按钮时,他们没有回到刚才查看的那个视图,而是回到了初始页面,就像刷新了 Ajax 站点一样。
如果用户临时加载了一个页面,然后返回到刚才查看的站点,结果发现页面已经变了,那么他们可能会很失望。不幸的是,浏览器很可能将页面加载为初始状态,经常丢失所有的更改。与此类似,如果用户希望与他人分享某个站点的特定视图或页面,或者将一个页面加入书签,他们认为并相信只需要从浏览器复制 URL 并使用即可(目前确实如此)。
如果页面的内容更改过多,使用户感觉像是一个新的页面,那么还不如直接向他们发送一个新页面。但是,如果开发人员确实需要使用 Ajax 更改页面内容,最好使用 Ajax History 工具存储后退前进按钮以及书签功能。这些工具使用哈希值(例如,“#tab3”)改变 URL,而无需加载一个新页面。当用户单击后退前进按钮,或者加载一个加入书签的 URL 时,JavaScript 代码查看哈希表并重新生成用户希望的视图。当然,这只对支持 JavaScript 语言的浏览器有用。
返回列表