AJAX设计策略(四)

 
幸运的,新的调试工具例如 Mozilla Firebug 调试器正在出现,以使调试 AJAX 代码更加简单。 GWT 也提供调试客户端和服务端代码的环境。请看本文的 Design Strategy 6: Go All Java Technology 部分。
暴露 JavaScript 代码-一个潜在的安全问题。在 web 应用客户端上的的 JavaScript 代码是看的见的。包括黑客在内的任何人可以看见并分析浏览器页面上的源代码。危害会随之而来。他们可能试图相反的操纵你的 web 应用。他们甚至可以从你的 web 应用上劫持 XMLHttpRequests 并返回破坏性的响应。
 
设计策略2:使用客户端JavaScript
无须为 AJAX 应用编写所有的客户端 JavaScript 代码,你可以利用 JavaScript 库的优势,他们提供 AJAX 功能,例如 : Dojo toolkit, Prototype, Script.aculo.us, Rico 。要找其他的,请见 Survey of AJAX/JavaScript Libraries.
Dojo toolkit 是一个开源的 JavaScript 工具箱,它的库和 API 可以轻松的将 AJAX 置入 web 应用。例如, dojo.io 库抽象化同服务端的 AJAX 通信,所以隐藏了底层的 XMLHttpRequest 操作。使用 XMLHttpRequest 库, AJAX bookstore2 应用程序中的 bpui.alone.showPopupInternal() 函数将会变成这样:
 
dojo.require("dojo.io.*");
...
// This function is called after initial timeout that represents the delay
bpui.alone.showPopupInternal=function(popupx, bookId) {
    // retrieve data through dojo call
    var bindArgs = {
 
        url: "../PopupServlet?bookId=" + escape(bookId),
        mimetype: "text/xml",
        load: bpui.alone.ajaxReturnFunction};
 
    // dispatch the request
    bpui.alone.req=dojo.io.bind(bindArgs);
 
dojo.require() 函数动态的为指定的库装载 JavaScript 代码,这里是 dojo.io 库。更新的 bpui.alone.showPopupInternal() 函数使用 dojo.io.bind() 方法向服务端提交一个异步的请求。 bind() 方法包装了 XMLHttpRequest, 因此你不必再像 do-it-yourself 方式那样创建和配置 XMLHttpRequest 对象。你需要为 bind() 方法提供以下参数:与之通话的服务端组件的 URL ,响应的格式,和回调函数标识。你也可以指定其他的参数,如 error
Dojo toolkit 中的其他库提供多种 API ,可以使编码变得简单,例如:动画, DOM 操作,拖拽支持, UI 效果。另外,工具箱提供完善的事件处理机制。尽管如此, Dojo toolkit 由于他的内置窗口部件库而闻名,你可以预创建 UI 组件,然后将它插入 web 应用并根据需要定制它。 Dojo 窗口部件能让你创建自己的部件。
 
Prototype 是一个 JavaScript 框架。它提供一个库,库的构件包含能使 JavaScript 应用简易化的对象。其中一个构建提供一个 AJAX 对象,类似 Dojo toolkit 中的 dojo.io 库,封装了 XMLHttpRequest 对象并隐藏了 XMLHttpRequest 操作。另一个构件提供一些对象和方法可以使操作 DOM 更简单。
 
Script.aculo.us Rico 是在 Prototype 的基础上建立的。二者都提供支持 AJAX ,拖拉, UI 效果,和其他插入 web 应用功能的 JavaScript 库。
 
使用客户端JavaScript库的正面和反面
这里有一些使用客户端 JavaScript 库建立 AJAX web 应用的正面和反面。
正面
隐藏底层细节。 Dojo toolkit 中的 dojo.io 库、 Prototype 库,此类库都封装了 AJAX 的一些细节。包括创建和配置 XMLHttpRequest 对象,和在这些对象上执行的一些操作。这些库允许你在一个更高、更抽象的层次上编码,使你不必提供更多的细节代码。
减少 JavaScript 编码的需要。 Dojo toolkit DOM manipulation 或者 Prototype DOM manipulation 之类的库提供例行程序,可以方便的被使用并且比起他们的等价的 JavaScript 库需要更少的代码。另外,组装类似 Dojo toolkit 里预建的窗口部件要比编写 JavaScript 功能简单的多。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值