译文

十项AJAX常规应用

翻译:薄荷脑 | 2009-07-05 14:08:33 | 阅读925 | 来源

什么是Ajax?它是如何运作的?

Ajax是异步JavaScript脚本和XML(Asynchronous JavaScript and XML)的缩写,用来使浏览器端应用程序和服务器端进行通信。在Ajax出现以前,浏览器端应用程序是无法直接和服务器进行通信的,只能使用刷新和加载页面的方法来实现。而有了Ajax之后,浏览器和服务器端就可以自由通信了。

以下简述Ajax脚本的运行路径:

  • 行为引发事件,如用户单击按钮;
  • Ajax响应该事件,并使用XML向服务器发送请求;
  • 服务器端程序(PHP、ASP或其他)接收到Ajax发来的数据并进行处理,从数据库中调用数据等;
  • 服务器端再使用XML向客户端返回数据;
  • 另外一个JavaScript函数,通常称之为回调函数,接收到服务器端发来的数据并据此更新页面。


本文将讨论我们如何通过不同的脚本来实现各种各样的功能。

1、登录表单

Ajax Post Image

按传统的做法,用户登录时会被定向到一个登录页面,随后再返回登录前的页面。使用Ajax后,用户可以直接在原页面输入用户名和密码。Ajax会将这些信息发送给服务器进行验证。服务器会返回数据告知浏览器是否验证通过,浏览器可相应地更新页面。Digg就有这样的登录表单。

示例:Digg.com (页面顶端)
插件:jQuery Form Plugin

2、自动完成

Ajax Post Image

谷歌是最早开始使用Ajax的公司之一,其搜索建议功能则是最先使用Ajax的地方,并开发了第一个自动完成工具。在搜索框输入数据后,Ajax会从服务器端接受数据,找出数据库中存储的常用搜索关键字并进行提示。自动完成功能是非常有用的,当表单可以输入多个可能的值时,显示一个下拉列表框供用户选择,非常人性化。

示例:Google Search
插件:jq autocomplete

3、投票和排行

Ajax Post Image

网页收藏站点如Digg、Reddit等往往会让用户来决定什么内容会放在首页,使用的方法便是投票。他们使用Ajax来实现这个功能,这样用户就能够方便快捷地表达自己的意见了。

示例:Reddit

4、使用用户内容更新

Ajax Post Image

Twitter之所以流行的一大原因是其简单易用的界面。当用户发送了一个消息后,这条消息会立刻添加到用户的页面中,所有的相应内容都会进行更新。最近,Twitter开始使用Ajax对“热门话题”进行更新。每隔几秒,我们就可以知道大家在忙些什么、关注些什么,非常快速。

示例:Twitter

5、表单的提交和验证

Ajax Post Image

表单永远是最麻烦的东西,但Ajax让它们变得友好起来。Ajax可以派很多用处,从上面提到的自动完成功能,再到现在的表单验证和提交。有些网站使用Ajax检查用户输入的数据是否达到了某些要求,如密码长度或者E-mail地址、URL地址是否合法等

示例:10 Cool jQuery Form Plugins

6、聊天室和即时消息

Ajax Post Image

在线聊天室在IRC之后多年才出现的只用应用。如今,聊天室和即时消息可以完全由浏览器来处理。在聊天室或即时消息应用程序中,Ajax通常要做两件事情,可以想象一下你的耳朵和嘴巴。你的嘴巴要告诉服务器你发送了一条消息,而耳朵则要保持和服务器的联系,以便接受对伐发送的消息,并显示在页面上

示例:Meebo Chat (使用了Ajax)
插件:GMail/Facebook Style Chat Script

7、灵巧的用户界面

Ajax Post Image

Ajax的一个常规应用就是创建整洁、灵巧的用户界面,使用户能在一个页面中做更多的事情。它的好处体现在两个地方:首先,它能使应用程序的响应更为快速,操作更为简单;其次,它能减少浏览器向服务器的请求次数,从而减少带宽和加载时间。有一个免费的上传服务,名为Drop.io,使用的就是这项技术。而谷歌则更是把这项应用发挥到了极致,使用Ajax开发出了类桌面应用程序,如谷歌文档、谷歌地图等。

参考:jQuery UI Library

8、插件

Ajax Post Image

Ajax不仅可以调用本地资源,还能够和其他服务器进行通信。像Wordpress之类的CMS(Content Management System 内容管理系统),它们的插件就是用Ajax实现的。又如Google Adsense,用的也是这样的方法。

示例:Google Adsense
插件:将外部内容加载到div中

9、使用Lightbox代替弹出窗口

Ajax Post Image

弹出窗口拦截程序越来越流行了,原因当然是弹出窗口实在是很烦人。而Lightbox是在浏览器窗口内部显示的,所以拦截程序不能拿它怎么样。而且Lightbox也不会让用户感到多厌烦,所以有些人就用它来作广告,如Darren Rowe的ProBlogger.com。Lightbox同样可以用来做登录表单或注册表单,比如匿名用户在Digg上投票时会被要求进行注册。

示例:Logo Sauce
插件:Lightbox Plugin

10、Ajax和Flash的结合

Ajax Post Image

很少有人会拿Ajax和Flash和一起使用,但是这样做却能起到非常好的效果。Flash游戏网站Kongregate使用了这项技术,效果很棒。通过使用他们的API,用户可以在游戏中赢取各种“徽章”,并使用Ajax将数据传输给服务器,更新用户的信息。

示例:Kongregate
插件:jQuery Flash Plugin

【本文翻译仅为外语学习及阅读目的,原文作者个人观点与译者及译言网无关】

分享:

标签:AJAX,

添加评论