提供了一组小部件(widget),可作为丰富 Web 用户界面(UI)的构建块。
简化异步数据交互和传输协议。
缓解任何跨浏览器的不兼容性。
提供有用的 JavaScript 方法,以简化很多常见的 Ajax 开发任务,例如 DOM 操纵和事件注册。
讨论各种可用的 Ajax 框架超出了本文的范围,因此我们选择只详细讨论 Prototype、script.aculo.us、Dojo 和 Rico。要获得更完整的可用 Ajax 框架列表和了解它们的使用,请参阅 Ajaxian.com 2006 survey(参考资料 中提供了链接)。
Prototype
Prototype(请参阅 参考资料) 是一个 JavaScript 库,它引入了一些强大的库来帮助简化 Ajax 编程。虽然它本身不能看作一个 Ajax 框架,但是它是其它几种框架(例如 script.aculo.us、Moo.fx2、Rico 等)的核心。 Prototype 支持:
基本 DOM 操作
Ajax 调用
一组实用函数
使用输入字段和表单
Prototype 是 Sam Stephenson 获得 Ruby 编程风格的灵感后开发的,它目前是麻省理工学院(Massachusetts Institute of Technology,MIT)许可下的一个开放源码项目(请参阅 参考资料)。
示例 Prototype 场景
下面是一个示例场景,它演示了如何使用 Prototype 简化 Ajax 编程。假设需要定期刷新一个页面中的某块区域,用于显示最新的新闻。于是可以设置一个计时器,每隔 1 分钟调用一次 updateNews() 方法。在 updateNews() 方法中,我们使用 Prototype Ajax.Updater 对最新新闻内容发起异步请求。接收到请求的结果后,再将其作为 div 元素 most-recent-news 中的 HTML 内容插入页面。清单 1 展示了 Prototype 所提供的众多强大的函数:
清单 1. 示例 Prototype 场景<html>
<head>
<script src="js/prototype.js" type="text/javascript"></script>
<script type="text/javascript">
function updateNews() {
new Ajax.Updater(
{success: 'most-recent-news'},
'http://myserver/news/recent-news'
);
setTimeout("updateNews()",60000);
}
</script>
</head>
<body onload="updateNews()">
<h1>Recent News</h1>
<div id="most-recent-news"></div>
</body>
</html>