Ajax 简介
主流 Web 编程模式的历史实践和当前实践
获得 Ajax 编程的技术介绍,并发现核心 JavaScript 代码和流行库的实现。 在过去几年,JavaScript 已从让人事后才想起的偶然对象变成最重要的 Web 语言。如果要指出一个推动这项技术显著进步的因素,那就是基于 Ajax 的应用程序开发的出现。 开发关于该主题的技术该内容是提高您技术的渐进知识路径的一部分。请参阅 JavaScript 综合指南。 简言之,Ajax 是一种开发技术和设计模式,支持网站或应用程序,使用实时数据更新界面,无需页面刷新。该功能创建了一种更为流畅且更具桌面风格的用户体验。 Ajax 简史Ajax 的发展历史类似于其他许多一夜成名的技术。尽管 Ajax 似乎不知从何而来,但实际上,它已经存在很长一段时间了。多年的努力使其遍布 Web,在 Ajax 旗帜的带领下创建工具和模式。纵观最初网络泡沫的 DHTML 时代,以及网络公司破产后的黑暗年代,世界各地的开发人员解禁了 JavaScript 的超能力,将这个崭新的、令人激动的应用程序模式引人 Web。 XMLHttpRequest最早最重要的 Ajax 谜题是 它也是 Microsoft? Internet Explorer? 团队贡献给 Internet 的最好礼物。 这 是真的。早在 2000 年,XHR 最先出现于 IE 5 中。最初是由 Alex Hopmann 编写的 Microsoft ? ActiveX? 控件,创建 XHR 是为了处理 Microsoft Outlook? Web Access,旨在解决高级(当时)前端接口和 Microsoft Exchange Server 间的交互。 尽管 Microsoft 的软件包不完全算是 “出身贫贱”,但 XHR 的发展远远超出了最初产品的范围,后来在各个主要浏览器中得以实现,甚至作为一种 W3C 标准被采用。 定义 Ajax 虽然这个技术说明从某种程度上讲有些过时了,但基本模式依然是完整的:HTML 和 CSS 呈现数据和样式,DOM 和相关方法支持页面实时更新,XHR 支持与服务器通信,JavaScript 安排整体显示。 本文的总体影响比较大。密集的大肆宣传与亟待开发的创造力和能源相碰撞,掀起了一场革命,这实属难得一见。由于 Ajax 被世界范围的新一代创业企业所采用,它迅速走向 Web 开发范式的前沿。Ajax 从一个寻求市场策略的模糊趋势一跃成为现代 Web 设计的开发的关键组成部分。 库基于 Ajax 开发的一个关键驱动因素是几个全功能 JavaScript 库的演变和改进。除了经验丰富的 JavaScript 开发人员,很少有人能够真正理解 Ajax 底层技术。因此,即使在 DHTML 时代,虽然研究出了大部分浏览器交互和动画来应对琐碎的超额,但数量有限的几个经验丰富的 JavaScript 工程师导致基于 Ajax 的站点需求和人才(他们可以从零开始编写这样一个界面)供应之间的差距的进一步扩大。通过提供随时可用的交互和动画,减少跨浏览器差异和改进核心 JavaScript API 缺点的实现,Prototype、Dojo 和 jQuery 这类库有助于大规模地填补这一空白。 异步 JavaScript 以及更多 JavaScript(对象表示法)从原 始 post 时代到现代,Ajax 领域的最大改变是引入了 JSON,JSON 是一种基于 JavaScript 的数据传输。提供更小的文件和更便利的原生 JavaScript 访问(与 XML 使用的笨重的基于 DOM 的方法和属性截然相反),JSON 很快就被开发人员用于进行数据传输。现在 JSON 已列入近期完成的 ECMAScript 规范的第 5 版。 JSON+Padding原始 JSON 提议的一个显著增强是 JSON+Padding (JSONP)。正如您所看到的, 尽管 JSONP 非常流行,但它有一个明显的便于恶意代码入侵的漏洞。因为来自第三方的脚本标记注入允许所有内容在主机页面上运行,所以,在数据提供者受到威胁时,或者主机页面没有留意插入页面的资源时,恶意入侵潜能将会令人想象。 现在,您已经对 Ajax 历史有所了解,接下来我们将开始探讨将魔法变成现实的技术。尽管,一般的 JavaScript API 书籍在图书馆中随处可见,但即使对于经验丰富的开发人员,了解底层工作原理仍然是具有启发意义的。 XMLHttpRequest API 和特性尽管可以使用其他技术从服务器中返回数据,但是 XHR 仍然是大多数 Ajax 交互的核心。XHR 交互由两部分组成:请求和响应。下面我们将逐个介绍。 安全模型正如上面所提到的,原始 随着第二版 XHR 对象的开发,新的跨域请求协议工作将在 W3C 中完成,大量实现工作由浏览器供应商完成,针对跨域请求的机制目前仅在 Internet Explorer 8+、Mozilla Firefox 3.5+、Apple Safari 4+ 以及 Google Chrome 中提供。尽管发展已经放缓,但仍在请求中发送了一个特定 “Origin” 报头: Origin:http://example.com 并将服务器配置为发送回一个匹配的 “Access-Control-Allow-Origin” 报头: Access-Control-Allow-Origin:: http://example.com 现在,可以使用 XHR 对象跨域进行双向通信了。 请求请求端有 4 种方法:
响应响应也有几个属性和方法:
readyState实例化完成后,
一个通用 JavaScript 示例在我们进一步介绍流行库之前,先通过几个原始的 JavaScript 示例来了解正在运用的核心技术。 以下所有示例均可下载(参见 下载 部分),而且可以在任何运行 PHP 的 Web 服务器上运行。所有示例都可以处理 清单 1 中的简单文档。 相关资料:http://wenku.it168.com/redian/ajax/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |