AJAX
编程范型 | Webapp, HTML, JavaScript, DHTML, DOM, XMLHttpRequest, JSON, XML, XSLT, XHTML, CSS |
---|---|
杰西·詹姆 | |
发行时间 | 2005 |
AJAX
传统
类似于DHTML
应用
[编辑]運用 XHTML+CSS來 表 達 資 訊;運用 JavaScript操作 DOM(Document Object Model)来 執行 動態 效果 ;運用 XML和 XSLT操作 資料 運用 XMLHttpRequest或 新 的 Fetch API與 網 頁 伺服器 進行 非 同 步 資料 交換 ;注意 :AJAX與 Flash、Silverlight和 Java Applet等 RIA技術 是 有 區分 的 。
发展史
[编辑]20
这可以用异步
1998
Ajax
优缺点
[编辑]Ajax
对应
关于
进行Ajax开发时,网络
兼 容 性
[编辑]JavaScript编程
XmlHttpRequest对象
// Provide the XMLHttpRequest class for IE 5.x-6.x:
// Other browsers (including IE 7.x-8.x) ignore this
// when XMLHttpRequest is predefined
var xmlHttp;
if (typeof XMLHttpRequest != "undefined") {
xmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
var aVersions = ["Msxml2.XMLHttp.5.0", "Msxml2.XMLHttp.4.0", "Msxml2.XMLHttp.3.0", "Msxml2.XMLHttp", "Microsoft.XMLHttp"];
for (var i = 0; i < aVersions.length; i++) {
try {
xmlHttp = new ActiveXObject(aVersions[i]);
break;
} catch (e) {}
}
}
AJAX
开发挑战及解决方案
[编辑]对程
- Ajax
在 本 质上是 一个浏览器端的技术,首 先 面 临无可 避免的 第 一个问题即是浏览器的兼容性问题。各 家 浏览器 对于JavaScript/DOM/CSS的 支持 总有部分 不 太 相 同 或 是 有 Bug,甚至同 一浏览器的各个版本间对于JavaScript/DOM/CSS的 支持 也有 可能 部分 不 一 样。这导致程序 员在写 Ajax应用时花大 部分 的 时间在 调试浏览器 的 兼 容 性 而非在 应用程 序 本身 。因 此,目前 大 部分 的 Ajax链接库或开发框 架 大 多 以js链接库的形式 存在 ,以定义更高 阶的JavaScript API、JavaScript对象(模 板 )、或 者 JavaScript Widgets来 解 决此问题。如prototype.js。 - Ajax
技 术之主要 目的 在 于局部 交换客 户端及服务器之 间的数 据 。如同传统之 主 从架构,无可避免的 会 有 部分 的 业务逻辑会 实现在 客 户端,或 部分 在 客 户端部分 在 服 务器。由 于业务逻辑可能 分 散在 客 户端及服务器,且以不同 之 程 序 语言实现,这导致Ajax应用程 序 极难维护。如有使用 者 接 口 或 业务逻辑之 更 动需求 ,再 加 上前 一 个JavaScript/DOM/CSS之 兼 容 性 问题,Ajax应用往往 变成程 序 员的梦魇。针对业务逻辑分散 的 问题,Ajax开发框 架 大 致可分 为两类:
将 业务逻辑及表现层放 在 浏览器 ,数 据 层放在 服 务器:因 为所有 的 程 序 以JavaScript执行在 客 户端,只 有 需要 数 据 时才向 服 务器要求 服 务,此法又 称 为胖客 户端(fat client)架 构。服 务器在 此架构下通常 仅用于提供 及储存 数 据 。此法的 好 处在于程序 员可以充分 利用 JavaScript搭配业务逻辑来 做出特殊 的 使用 者 接 口 ,以符合 终端使用 者 的 要求 。但 是 问题也不少 ,主因 在 第 一 ,JavaScript语言本身 之 能力 可能 不足 以处理 复杂的 业务逻辑。第 二 ,JavaScript的 执行效能 一向 不 好 。第 三 ,JavaScript存 取 服 务器数 据 ,仍需适当的 服 务器端 程 序 之 配合 。第 四 ,浏览器 兼 容 性 的 问题又 出 现。有 些Ajax开发框 架 如DWR企 图以自 动生成 JavaScript之 方式 来 避免兼 容 的 问题,并开立 通 道 使 得 JavaScript可 以直接 叫 用 服 务器端 的 Java程 序 来 简化数 据 的 存 取 。但 是 前述 第 一及第二两个问题仍然存在,程 序 员必须费相当 的 力 气才能 达到应用程 序 之 规格要求 ,或 可能 根本 无法达到要求 。
将 表 现层、业务逻辑、及数据 层放在 服 务器,浏览器 仅有使用 者 接 口 引擎(User Interface engine);此法又 称 为瘦客 户端(thin client)架 构,或 中心 服 务器(server-centric)架 构。浏览器 的 使用 者 接 口 引擎仅用于反映 服 务器的 表 现层以及传达使用 者 的 输入回 到 服 务器的 表 现层。由 浏览器 所 触 发之事件 亦 送 回 服 务器处理,根 据 业务逻辑来 更新 表 现层,然 后 反映 回 浏览器 。因 为所有 应用程 序 完全 在 服 务器执行,数 据 及表现层皆 可 直接 存 取 ,程 序 员只需使用 服 务器端 相 对较成熟 之 程 序 语言(如Java语言)即 可 ,不 需再学 习JavaScript/DOM/CSS,在 开发应用程 序 时相对容易 。缺 点在 于使用 者 接 口 引擎以及表 现层通常 以标准 组件的 形式 存在 ,如需要 特殊 组件(使用 者 接 口 )时,往往 须待原 框 架 之 开发者 提供 ,缓不济急。如开源 码Ajax开发框 架 ZK目前 支持 XUL及XHTML组件,尚 无XAML之 支持 。
Ajax
参考 文献
[编辑]- ^ (
英文 )Ajax:網 頁 應用 程 式 的 新 方法 (页面存 档备份,存 于互联网档案 馆)—Jesse James Garrett,最近 存 取 日 2007年 11月7日 - ^ (
英文 )微 軟XML Parser(MSXML)版本 列 表 (页面存 档备份,存 于互联网档案 馆),最近 存 取 日 2007年 11月7日 - ^ (
英文 )Web设计10大 错误(1999年 ) (页面存 档备份,存 于互联网档案 馆)—Jakob Nielsen著 - ^ (
英文 )Remote Scripting with AJAX, Part 2 (页面存 档备份,存 于互联网档案 馆) - ^ (
英文 )延 遲 必死 :預 讀資料 以降 低 延 遲 (页面存 档备份,存 于互联网档案 馆)—JonathanBoutelle.com - ^ (
英文 )不可 靠 網 路 下 的 非 同 步 要求 (页面存 档备份,存 于互联网档案 馆)—Harry Fuecks著 ,2005年 2月 - ^ (
英文 )小 朋友 們聽著 , AJAX不 怎麼酷 (页面存 档备份,存 于互联网档案 馆)—Marcus Baker著 ,2005年 6月 3日 - ^ (
英文 )Opera 9支援 的 網 頁 規格 Archive.is的 存 檔,存 档日期 2012-06-04—XSLT, XPath, and XSL-FO部分 論及 不 支持 XSL-FO與 XSLT,最近 存 取 日 2007年 11月7日
- (
英文 ) Ajax: A new approach to web applications[永久 失效 連結 ] --JJ Garrett - 2005年
外部 链接
[编辑]工具
[编辑]- ASP.NET AJAX Extension(
開發 階段 時代 號 Atlas)(页面存 档备份,存 于互联网档案 馆),微 軟AJAX工具 箱 。 - jQuery(页面
存 档备份,存 于互联网档案 馆),開源 JS框 架 ,寫 得 更 少 ,做得更 多 。 - Dojo
工具 箱 (页面存 档备份,存 于互联网档案 馆),AJAX/DHTML工具 箱 。 - Prototype,
開放 源 代 碼框架 。 - Buffalo Web Remoting(based on prototype)
- openrico JS UI component(based on prototype)
- PHPRPC(页面
存 档备份,存 于互联网档案 馆),開放 源 代 碼多語 言 支持 的 跨 平台 的 安全 的 Web遠 程 過程 調 用 框 架 ,讓 Ajax編 程 更 容易 。 - Sajax,
簡單 AJAX工具 箱 - Rialto,Rich Internet AppLication TOolkit.
- MochiKit(页面
存 档备份,存 于互联网档案 馆)一 個 自稱 AJAX的 輕量 級 js庫 ,支持 Json。 - OpenLaszlo(页面
存 档备份,存 于互联网档案 馆)原本 專 注 在 Flash作為 表現 層 的 Laszlo將 方向 轉 至 AJAX。 - script.aculo.us(页面
存 档备份,存 于互联网档案 馆)為 Ruby on Rails量 身 打 造 的 AJAX函 式 庫 ,跨 平台 支援 。 - Rico(页面
存 档备份,存 于互联网档案 馆)知名 的 開源 碼的AJAX函 式 庫 ,跨 平台 支援 。 - DWR(页面
存 档备份,存 于互联网档案 馆) Web Remoting - qooxdoo(页面
存 档备份,存 于互联网档案 馆) JS UI component(C/S Style) - jsLINB
完全 OOP,帶 有線 程 模擬 的 ajax RIA框 架 。 - GWT(页面
存 档备份,存 于互联网档案 馆) Google開源 框 架 。 - Quicknet一個能提供安全資料傳輸的AJAX
系統 架 構。
图书
[编辑]- 《Ajax
基 础教程 》,Foundations Of Ajax中 文 版 ,人民 邮电出版 社 图灵公司 出版 。ISBN 7-115-14481-8 - 《Ajax实战》,Ajax in Action
中 文 版 ,人民 邮电出版 社 图灵公司 出版 。ISBN 7-115-14717-5 - 《Ajax
高 级程序 设计》(第 二 版 ),Professional Ajax,人民 邮电出版 社 图灵公司 出版 。 - 《Head First Ajax》O'Reilly
出版 社 - 《Ajax
實戰 手 冊 》碁 峰 ISBN 986-181-036-6 - 《Ajax
技術 手 冊 》碁 峰 ISBN 986-181-019-6
參 見
[编辑]- Google Web Toolkit
是 一 個 前 端 使用 JavaScript,後端 使用 Java的 AJAX framework,提供 WYSIWYG設計 介 面 。 - jQuery
用 于简化 AJAX开发的 Javascript函 式 庫 。 - Prototype AJAX
函 式 庫 。 - Yahoo! UI Library is a set of utilities and controls, written in JavaScript, for building richly interactive web applications using techniques such as DOM scripting, DHTML and AJAX.
- Xajax
知名 的 開源 碼開發 AJAX用 PHP函 式 庫 。 - ZK,开放
源 代 码AJAX/XUL框 架 ,JAVA專用 。 - ASP.NET AJAX,
由 微 軟專為 ASP.NET應用 程 式 所 開發 的 AJAX基礎 架 構。 - Web 2.0,一种新的互联网概念
- 推送
技 术,一种服务端主动通知用户的技术
|
|
|
|