基于JSON的高级AJAX开发技术

ajax|js|高级

提要 本文将解释如何使用AJAX和JSON分析器在客户端和服务器之间创建复杂的JSON数据传输层。

  一、 引言

  毫无疑问,AJAX已经成为当今Web开发中一种强有力的用户交互技术,但是它的许多可能性应用仍然鲜为人知。在本文中,我们将来共同探讨如何使用JavaScript对象标志(JSON)和JSON分析器在服务器和客户端AJAX引擎之间创建复杂而强有力的JSON数据传输层。我们将详细讨论如何创建一组对象(在其它语言中经常被当作一个包),如何把这些对象串行化为JSON以发送到服务器端,以及如何把服务器端JSON反串行化为客户端JavaScript对象。

  提示】你可以在Douglas Crockford的网站上找到本文中使用的JSON分析器。

  在继续阅读前,本文假定你已经掌握了JavaScript技术并且了解如何创建一个基本的AJAX引擎,并经由AJAX技术向服务器端发出请求和从服务器端接收响应。为了更好地理解本文中示例,你需要下载本文相应的源码文件。

  二、 开始

  为了进一步抽象我们的AJAX请求并有助于我们以后在不同的应用程序间共享AJAX引擎代码,本文使用了一个我自己创建的AJAX引擎。为了使用这个引擎,我们简单地导入三个JavaScript文件并且向一个名为AjaxUpdater的对象发出请求。然后,由该引擎来负责处理其它任务,包括把响应代理到在该请求中指定的回调方法中。下面的示例展示了我们如何使用这个引擎发出请求以及导入相关的文件:

<script type="text/javascript"src="javascript/model/Ajax.js"></script>
<script type="text/javascript" src="javascript/model/HTTP.js"></script>
<script type="text/javascript" src="javascript/model/AjaxUpdater.js"></script>
<script type="text/javascript">
document.load = AjaxUpdater.Update(’GET’, URL, callback);
</script>

  首先,让我们来讨论JavaScript对象。

  三、 JavaScript对象

  JavaScript以前经常被误解,似乎它主要用于实现客户浏览器端图形效果。其实,JavaScript是一种强有力的语言,特别当它与AJAX以及一个应用程序的服务器端相结合时;但是,即使在客户端,JavaScript也能够实现远比你预料得多的多的功能。面向对象的JavaScript就是一个示例,它能够使我们创建对象,扩展内在对象,甚至能够把我们的对象创建成包以达到更容易的管理之目的。

  在本文示例中,我们将创建三个对象:Auto,Car和Wheel。其中,每一个都是简单的对象;在此,我们仅使用它们来展示如何创建一个基本包。

  首先,Auto对象被声明为一个新的对象:

var Auto = new Object();

  注意,这个Auto对象将用作Car对象的父类。因此,Car对象将成为Auto对象的一个属性,只不过它被分离到另一个文件中以更易于管理(这个概念经常被用于其它面向对象的语言中,但是在JavaScript中却并不经常提起它)。下面是这个Car对象相应的代码:

Auto.Car = new Object();
Auto.Car.color = "#fff";
Auto.Car.setColor = function(_color)
{
 Auto.Car.color = _color;
}
Auto.Car.setColor("#333");

  如你所见,该Car对象是Auto对象的一个子对象—这分明是一种类对象层次结构。这个对象有一个名为color的属性和一个用于设置它的方法。在此,我们把color属性设置为灰色以覆盖掉缺省的白色。当在后面我们串行化该对象时请牢记住这个事实。

  下一个对象,Wheel,是Car的一个子对象:

Auto.Car.Wheel = new Object();
Auto.Car.Wheel.color = "#000";

  在此,Wheel是一个基本对象,但是它展示了对象层次中的又一个层。这个对象有一个称为color的缺省值为黑色(“#000”)的属性。

  下面,让我们来分析一下为什么这些对象如此重要以及我们是如何使用它们提供的简单的属性的。
[1] [2]  下一页

时间: 2024-11-10 00:19:07

基于JSON的高级AJAX开发技术的相关文章

详谈基于JSON的高级AJAX开发技术

ajax|js|高级 本文将解释如何使用AJAX和JSON分析器在客户端和服务器之间创建复杂的JSON数据传输层. 一. 引言 毫无疑问,AJAX已经成为当今Web开发中一种强有力的用户交互技术,但是它的许多可能性应用仍然鲜为人知.在本文中,我们将来共同探讨如何使用JavaScript对象标志(JSON)和JSON分析器在服务器和客户端AJAX引擎之间创建复杂而强有力的JSON数据传输层.我们将详细讨论如何创建一组对象(在其它语言中经常被当作一个包),如何把这些对象串行化为JSON以发送到服务器

浅谈AJAX开发技术_AJAX相关

AJAX(Asynchronous JavaScript and XML,异步JavaScript和XML),AJAX并不是一项新的技术,它产生的主要目的是用于页面的局部刷新,从之前的代码开发来看,读者可以发现,每当用户向服务器端发出请求时,那怕需要的只是简单的更新一点点的局部内容,服务器端都会将一个整体的页面进行刷新,并重新生成代码,这样一来程序的性能肯定会有所降低的,而如果采用了AJAX技术之后,就可以实现局部的内容变更,而不用再进行整体的页面刷新,显然处理的性能要比前者高很多 . 在AJA

浅谈AJAX开发技术

AJAX(Asynchronous JavaScript and XML,异步JavaScript和XML),AJAX并不是一项新的技术,它产生的主要目的是用于页面的局部刷新,从之前的代码开发来看,读者可以发现,每当用户向服务器端发出请求时,那怕需要的只是简单的更新一点点的局部内容,服务器端都会将一个整体的页面进行刷新,并重新生成代码,这样一来程序的性能肯定会有所降低的,而如果采用了AJAX技术之后,就可以实现局部的内容变更,而不用再进行整体的页面刷新,显然处理的性能要比前者高很多 . 在AJA

JAVA高级:基于JSP的动态网站开发技术

js|动态|高级 动态网站开发技术 早期的动态网站开发技术使用的是CGI-BIN接口.开发人员编写与接口相关的单独的程序和基于Web的应用程序,后者通过Web服务器来调用前者.这种开发技术存在着严重的扩展性问题--每一个新的CGI程序要求在服务器上新增一个进程.如果多个用户并发地访问该程序,这些进程将耗尽该Web服务器所有的可用资源,直至其崩溃. 为克服这一弊端,微软公司提出了Active  Server  Pages(ASP)技术,该技术利用"插件"和API简化了Web应用程序的开发

Rails系统中的AJAX开发技术简析(2)

ajax|rails 五. 使用link_to_remote Rails有若干帮助者方法以在你的视图的模板中实现Ajax.一种最简单且很通用的方法就是link_to_remote().让我们考察一个简单的web页面-它实现询问时间并且有一个链接,用户可以点击这个链接来获得当前的时间.该应用程序经由link_to_remote()使用Ajax以检索时间并且显示它于web页面. 我的视图模板(index.rhtml)看起来象: <html><head><title>Ajax

Rails系统中的AJAX开发技术简析(3)

ajax|rails 六. 使用form_remote_tag 这个form_remote_tag()帮助函数与link_to_remote()很相似,除了它也发送一个HTML表单的内容之外.这意味着该行动处理器可以使用用户输入的数据来形成响应.这个实例显示了一个web页面-它有一个列表和一个支持Ajax的表单-该表单能够让用户添加一些选项到该列表中. 我的视图模板(index.rhtml)看上去象: <html><head><title>Ajax List Demo&

AJAX开发技术在PHP开发中的简单应用技巧_AJAX相关

[AJAX介绍] Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法.Web页面不用打断交互流程进行重新加裁,就可以动态地更新.使用Ajax,用户可以创建接近本地桌面应用的直接.高可用.更丰富.更动态的Web用户界面. 异步JavaScript和XML(AJAX)不是什么新技术,而是使用几种现有技术--包括级联样式表(CSS).JavaScript. XHTML.XML和可扩展样式语言转换(XSLT),开发外观及操作类似桌面软件的Web应用软件. [AJAX执行原理] 一个Aja

基于JSP的动态网站开发技术_JSP编程

随着Web技术的发展和电子商务时代的到来,人们不再满足于建立各种静态地发布信息的网站,更多的时候需要能与用户进行交互,并能提供后台数据库的管理和控制等服务的动态网站. 动态网站开发技术 早期的动态网站开发技术使用的是CGI-BIN接口.开发人员编写与接口相关的单独的程序和基于Web的应用程序,后者通过Web服务器来调用前者.这种开发技术存在着严重的扩展性问题--每一个新的CGI程序要求在服务器上新增一个进程.如果多个用户并发地访问该程序,这些进程将耗尽该Web服务器所有的可用资源,直至其崩溃.

基于JSP的动态网站开发技术

随着Web技术的发展和电子商务时代的到来,人们不再满足于建立各种静态地发布信息的网站,更多的时候需要能与用户进行交互,并能提供后台数据库的管理和控制等服务的动态网站.动态网站开发技术 早期的动态网站开发技术使用的是CGI-BIN接口.开发人员编写与接口相关的单独的程序和基于Web的应用程序,后者通过Web服务器来调用前者.这种开发技术存在着严重的扩展性问题--每一个新的CGI程序要求在服务器上新增一个进程.如果多个用户并发地访问该程序,这些进程将耗尽该Web服务器所有的可用资源,直至其崩溃.为克