《24]dojo_ppt [兼容模式].pdf》由会员分享,可在线阅读,更多相关《24]dojo_ppt [兼容模式].pdf(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、IBM IT Professional Solutions 2009 IBM CorporationDojo技术技术Dojo技术技术DavidDec-,2009TEDA-IBM软件及服务外包人才培训南开中心DavidDec-,2009TEDA-IBM软件及服务外包人才培训南开中心PDF 文件使用 pdfFactory Pro 试用版本创建 ContentContentDojo基本概念Dojo体系结构Dojo开发步骤Dojo的XHR框架Dojo基本概念Dojo体系结构Dojo开发步骤Dojo的XHR框架PDF 文件使用 pdfFactory Pro 试用版本创建 M 下载和配置下载和配置下载和配
2、置下载和配置DojoDojohttp:/download.dojotoolkit.org/release-1.2.3/dojo-release-1.2.3.tar.gzdojo针对不同的需求而提供了不同的版本,如Ajax版和Widget版,每个版本最重要的区别在于dojo.js文件。每一个版本都是全功能的,dojo.js根据版本不同整合进了不同的模块。http:/download.dojotoolkit.org/release-1.2.3/dojo-release-1.2.3.tar.gzdojo针对不同的需求而提供了不同的版本,如Ajax版和Widget版,每个版本最重要的区别在于dojo.
3、js文件。每一个版本都是全功能的,dojo.js根据版本不同整合进了不同的模块。PDF 文件使用 pdfFactory Pro 试用版本创建 M餀 DojoDojo基本概念基本概念基本概念基本概念Dojo是一个利用Javascript实现的开源DHTML工具包。Dojo中包含了很多Javascript编写的子package,负责处理在创建一个Javacript应用时通常必须要自己来编写的基础工作。它封装了跨浏览器的代码。它在不同浏览器中可以将XMLHttpRequest对象降级为使用其他的远程调用机制,同时提供最简单的、容易使用的API。Dojo引入了Widget概念,方便了Javascrip
4、t面向对象编程(OOP),改进了Javascript的事件模型。Dojo是一个利用Javascript实现的开源DHTML工具包。Dojo中包含了很多Javascript编写的子package,负责处理在创建一个Javacript应用时通常必须要自己来编写的基础工作。它封装了跨浏览器的代码。它在不同浏览器中可以将XMLHttpRequest对象降级为使用其他的远程调用机制,同时提供最简单的、容易使用的API。Dojo引入了Widget概念,方便了Javascript面向对象编程(OOP),改进了Javascript的事件模型。PDF 文件使用 pdfFactory Pro 试用版本创建 M D
5、ojoDojo体系架构体系架构体系架构体系架构Dojo是一个分层的体系架构。最下面一层是包系统(package system)。再上层是语言库,包含一些语言工具API,类似java的util包。再上层是环境包,这个包处理跨越浏览器的问题。最上层是Dojo的Widget系统。Widget指的是用户界面的一个元素,比如按钮、进度条和树等。Widget基于MVC模式结构。它的视图作为一个模板来进行存放,在模板中放置着html和css片段,而控制器对该模板中的元素进行操作。Widget不仅支持自定义的样式表,并且能够对内部元素的事件进行处理。Dojo是一个分层的体系架构。最下面一层是包系统(packa
6、ge system)。再上层是语言库,包含一些语言工具API,类似java的util包。再上层是环境包,这个包处理跨越浏览器的问题。最上层是Dojo的Widget系统。Widget指的是用户界面的一个元素,比如按钮、进度条和树等。Widget基于MVC模式结构。它的视图作为一个模板来进行存放,在模板中放置着html和css片段,而控制器对该模板中的元素进行操作。Widget不仅支持自定义的样式表,并且能够对内部元素的事件进行处理。PDF 文件使用 pdfFactory Pro 试用版本创建 DojoDojo包结构包结构包结构包结构Dojo提供了上百个包,这些包分别放入在三个一级命名空间内,分别
7、是:dojo、dijit、dojox。其中dojo是核心功能包。dijit包中存放的是Widget组件。而dojox则是一些扩展和试验功能,在dojox中的试验功能成熟之后有可能在后继版本中移入到dojo包或dijit命名空间中。Dojo提供了上百个包,这些包分别放入在三个一级命名空间内,分别是:dojo、dijit、dojox。其中dojo是核心功能包。dijit包中存放的是Widget组件。而dojox则是一些扩展和试验功能,在dojox中的试验功能成熟之后有可能在后继版本中移入到dojo包或dijit命名空间中。PDF 文件使用 pdfFactory Pro 试用版本创建)DojoDoj
8、o技术中常用的一些包技术中常用的一些包技术中常用的一些包技术中常用的一些包 dojo.string 这个包可以对字符串进行如下处理修正、转换大小写、编码、escape、填充等 dojo.date 解析日期格式 dojo.back 用来撤销用户操作的栈管理器 dojo.fx基本动画效果库 dojo.colors 颜色工具包 dojo.regexp 正则表达式处理函数库 dijit.forms 与表单控件相关的Widget库 dijit.layout页面布局Widget库 dijit.popup这个包用于以弹出窗口的方式使用Widget dojox.collections 很有用的集合数据结构Li
9、st、Query、Set、Stack、Dictionary等 dojox.math数学函数(曲线、点、矩阵)dojo.string 这个包可以对字符串进行如下处理修正、转换大小写、编码、escape、填充等 dojo.date 解析日期格式 dojo.back 用来撤销用户操作的栈管理器 dojo.fx基本动画效果库 dojo.colors 颜色工具包 dojo.regexp 正则表达式处理函数库 dijit.forms 与表单控件相关的Widget库 dijit.layout页面布局Widget库 dijit.popup这个包用于以弹出窗口的方式使用Widget dojox.collecti
10、ons 很有用的集合数据结构List、Query、Set、Stack、Dictionary等 dojox.math数学函数(曲线、点、矩阵)PDF 文件使用 pdfFactory Pro 试用版本创建 M DojoDojo开发步骤开发步骤开发步骤开发步骤第一:在工程目录下创建一个dojoapp子目录,然后把dojo包的内容解压到该目录中。第二:测试dojo是否可以运行正常。把工程部署到服务器,然后启动服务器。启动浏览器,在地址栏中输入:http:/localhost:8080/dojoapp/dijit/themes/themeTester.html第三:配置djConfigdjConfig是
11、dojo内置的一个全局设置对象,其作用是可以通过其控制dojo的行为。需要在引用dojo.js前声明diConfig对象,以便在加载dojo.js的时候才能够取得所设置的值。一个完整的djConfig对象dojo默认值的定义:通过对这个参数对象进行不同的赋值,可以控制页面中dojo解析模块是否运行、dojo调试模块是否工作等。第一:在工程目录下创建一个dojoapp子目录,然后把dojo包的内容解压到该目录中。第二:测试dojo是否可以运行正常。把工程部署到服务器,然后启动服务器。启动浏览器,在地址栏中输入:http:/localhost:8080/dojoapp/dijit/themes/t
12、hemeTester.html第三:配置djConfigdjConfig是dojo内置的一个全局设置对象,其作用是可以通过其控制dojo的行为。需要在引用dojo.js前声明diConfig对象,以便在加载dojo.js的时候才能够取得所设置的值。一个完整的djConfig对象dojo默认值的定义:通过对这个参数对象进行不同的赋值,可以控制页面中dojo解析模块是否运行、dojo调试模块是否工作等。PDF 文件使用 pdfFactory Pro 试用版本创建 DojoDojo开发步骤开发步骤开发步骤开发步骤配置配置配置配置djConfigdjConfigvar djConfig=isDebug
13、:false,debugContainerId:”,bindEncoding:”,allowQueryConfig:false,baseScriptUri:”,parseWidgets:true,searchIds:,baseRelativePath:”,libraryScriptUri:”,iePreventClobber:false,ieClobberMinimal:true,preventBackButton:true;其中:isDebug是一个调试用的属性。如果设置为true,则所有dojo.Debug的输出有效,开发时应该设置为true,发布时应该设置为false。debugCont
14、ainerId也与调试有关,如果不指定的话,调试信息将会直接利用document.write输出,这样可能破坏页面的整体布局,所以可以指定任何一个可以作为容器的html元素的id作为调试信息的输出容器。allowQueryConfig属性指明dojo是否允许从页面url的参数中读取djConfig中的相关属性。当值为true时,dojo会从url参数中读取djConfig的其他属性,如:http:/localhost:8080/DojoSimpleDemo/requrl?djConfig.debugContainderId=divDebugvar djConfig=isDebug:false,
15、debugContainerId:”,bindEncoding:”,allowQueryConfig:false,baseScriptUri:”,parseWidgets:true,searchIds:,baseRelativePath:”,libraryScriptUri:”,iePreventClobber:false,ieClobberMinimal:true,preventBackButton:true;其中:isDebug是一个调试用的属性。如果设置为true,则所有dojo.Debug的输出有效,开发时应该设置为true,发布时应该设置为false。debugContainerId
16、也与调试有关,如果不指定的话,调试信息将会直接利用document.write输出,这样可能破坏页面的整体布局,所以可以指定任何一个可以作为容器的html元素的id作为调试信息的输出容器。allowQueryConfig属性指明dojo是否允许从页面url的参数中读取djConfig中的相关属性。当值为true时,dojo会从url参数中读取djConfig的其他属性,如:http:/localhost:8080/DojoSimpleDemo/requrl?djConfig.debugContainderId=divDebugPDF 文件使用 pdfFactory Pro 试用版本创建 M D
17、ojoDojo开发步骤开发步骤开发步骤开发步骤配置配置配置配置djConfigdjConfigbaseScriptUri一般不需要设置,dojo会自动根据引用dojo.js的路径设置这个值。parseWidgets可以控制dojo是否自动解析具有dojoType的html元素为对应的widget,如果没有使用任何Widget,建议设置为false以加快dojo的加载速度。searchIds是一个字符串数组,定义可所有需要解析为widget的html元素的ID,如果ID不在其中,html元素是不会被解析的,当数组为空数组时,则所有具有dojoType的元素都会被解析。bindEncoding用来
18、设置默认的bind请求的编码方式。parseOnload:true表示在页面加载完成后,启动dojo的解析模块对页面中的dojo标签属性进行解析。在实际的开发中可以把djConfig的定义放在一个js文件里,并将其作为第一个引用的js文件,这样比较方便管理。baseScriptUri一般不需要设置,dojo会自动根据引用dojo.js的路径设置这个值。parseWidgets可以控制dojo是否自动解析具有dojoType的html元素为对应的widget,如果没有使用任何Widget,建议设置为false以加快dojo的加载速度。searchIds是一个字符串数组,定义可所有需要解析为wid
19、get的html元素的ID,如果ID不在其中,html元素是不会被解析的,当数组为空数组时,则所有具有dojoType的元素都会被解析。bindEncoding用来设置默认的bind请求的编码方式。parseOnload:true表示在页面加载完成后,启动dojo的解析模块对页面中的dojo标签属性进行解析。在实际的开发中可以把djConfig的定义放在一个js文件里,并将其作为第一个引用的js文件,这样比较方便管理。PDF 文件使用 pdfFactory Pro 试用版本创建 M DojoDojo开发步骤开发步骤开发步骤开发步骤第四:在jsp页面中动态加载package在dojo中如果需要使
20、用一个尚未下载的package,只需要请求这个package,require方法调用将会动态获取那些package所需的javascipt,并且将它们加载到页面中如下:dojo.require(“dojo.dnd.*”);dojo.require(“dojo.lfx.*”);第四:在jsp页面中动态加载package在dojo中如果需要使用一个尚未下载的package,只需要请求这个package,require方法调用将会动态获取那些package所需的javascipt,并且将它们加载到页面中如下:dojo.require(“dojo.dnd.*”);dojo.require(“dojo.
21、lfx.*”);PDF 文件使用 pdfFactory Pro 试用版本创建 M DojoDojo开发步骤开发步骤开发步骤开发步骤第五:在jsp页面中需要把dojo.js等文件加载到使用它的页面中,加载方法为:djConfig=isDebug:false;其中dojo_path表示dojo包在系统所处的绝对位置,例如:C:Program FilesApache Software FoundationTomcat 5.5webappsDojoSimpleDemodojoappdojo在web项目应用中,可以在页面中使用dojo包的相对位置,例如:dojoapp/dojo第五:在jsp页面中需要把
22、dojo.js等文件加载到使用它的页面中,加载方法为:djConfig=isDebug:false;其中dojo_path表示dojo包在系统所处的绝对位置,例如:C:Program FilesApache Software FoundationTomcat 5.5webappsDojoSimpleDemodojoappdojo在web项目应用中,可以在页面中使用dojo包的相对位置,例如:dojoapp/dojoPDF 文件使用 pdfFactory Pro 试用版本创建 M 举例:举例:举例:举例:dojotest.jspdojotest.jspPDF 文件使用 pdfFactory Pr
23、o 试用版本创建 M DojoDojo的的的的XHRXHR框架框架框架框架Dojo提供了基于XMLHttpRequest对象XHR框架来支持异步的Ajax调用,另外Dojo.io包中提供了两种浏览器和服务器交互的方式,分别是Iframe隐藏框架和Script动态脚本,它们是对XHR框架的有益补充。XMLHttpRequest对象是Dojo的XHR框架的基础,目前主要的浏览器都支持XMLHttpRequest,但是不同的浏览器上的实现方式却不一样。XHR对象的创建方式不一致是Dojo的XHR框架诞生的一个原因。更重要的原因是XHR对象还不够强大,有些方面不能满足开发的需要。首先xhr对象支持的返
24、回类型有限,原始的xhr对象只有responseText和responseXML两个属性代表返回的数据,比如它不支持重要的数据交换格式json。其次不能设置http request的超时时间,设置超时时间可以让客户端脚本控制请求存在的时间,而不是被动的等待服务器端返回。Dojo提供了基于XMLHttpRequest对象XHR框架来支持异步的Ajax调用,另外Dojo.io包中提供了两种浏览器和服务器交互的方式,分别是Iframe隐藏框架和Script动态脚本,它们是对XHR框架的有益补充。XMLHttpRequest对象是Dojo的XHR框架的基础,目前主要的浏览器都支持XMLHttpRequ
25、est,但是不同的浏览器上的实现方式却不一样。XHR对象的创建方式不一致是Dojo的XHR框架诞生的一个原因。更重要的原因是XHR对象还不够强大,有些方面不能满足开发的需要。首先xhr对象支持的返回类型有限,原始的xhr对象只有responseText和responseXML两个属性代表返回的数据,比如它不支持重要的数据交换格式json。其次不能设置http request的超时时间,设置超时时间可以让客户端脚本控制请求存在的时间,而不是被动的等待服务器端返回。PDF 文件使用 pdfFactory Pro 试用版本创建)DojoDojo的的的的XHRXHR框架框架框架框架Dojo的xhr框架
26、中提供了一组函数来支持各种http请求,包括xhrGet、xhrPost、xhrPut、xhrDelete、rawXhrPut、rawXhrPost。和四种请求一一对应,http中的四种请求分别是:Get(读取)、Post(更新)、Put(创建)、Delete(删除)。除了Dojo的xhr框架外,Dojo还提供了一个io包,它有两个对象组成,分别是:dojo.io.iframedojo.io.script使用这两个包同样可以跟服务器交互,但是它们采用了不同xhr框架对象的实现思路。Dojo的xhr框架中提供了一组函数来支持各种http请求,包括xhrGet、xhrPost、xhrPut、xhr
27、Delete、rawXhrPut、rawXhrPost。和四种请求一一对应,http中的四种请求分别是:Get(读取)、Post(更新)、Put(创建)、Delete(删除)。除了Dojo的xhr框架外,Dojo还提供了一个io包,它有两个对象组成,分别是:dojo.io.iframedojo.io.script使用这两个包同样可以跟服务器交互,但是它们采用了不同xhr框架对象的实现思路。PDF 文件使用 pdfFactory Pro 试用版本创建)使用使用使用使用xhrGetxhrGet请求资源请求资源请求资源请求资源xhrGet是dojo的xhr框架中经常使用的函数,使用它可以请求服务器上
28、的静态文本资源,如text、xml等,也可以获得动态页面php、jsp、asp等,只要从服务器返回的是字符数据流即可。dojo.xhrGet(url:helloworld.txt“,handleAs:txt“,load:function(response,ioArgs)alert(response);,error:function(error,ioArgs)alert(error.message););xhrGet是dojo的xhr框架中经常使用的函数,使用它可以请求服务器上的静态文本资源,如text、xml等,也可以获得动态页面php、jsp、asp等,只要从服务器返回的是字符数据流即可。d
29、ojo.xhrGet(url:helloworld.txt“,handleAs:txt“,load:function(response,ioArgs)alert(response);,error:function(error,ioArgs)alert(error.message););PDF 文件使用 pdfFactory Pro 试用版本创建 M 使用使用使用使用xhrGetxhrGet请求资源请求资源请求资源请求资源dojo.xhrGet函数的参数是一个json对象。接送对象由许多属性名/值对组成,其中的值可以是任意类型的数据,如整型、字符串、函数,甚至可以是json对象,这一点使得jso
30、n对象的数据描述能力可以喝xml匹敌。而且json对象可以使用“.”操作符来直接访问它的属性。dojo.xhrGet函数四个属性参数如下:url:请求的服务器的资源url,url标识的只能是文本文件,而不能是二进制文件。handleAs:返回的数据类型。可以是text(default)、json、xml、javascript、json-comment-optional、json-comment-filtered。Dojo将根据handleAs设置的数据类型对从服务器返回的数据进行预处理,再传给load属性指向的回调函数。dojo.xhrGet函数的参数是一个json对象。接送对象由许多属性名/
31、值对组成,其中的值可以是任意类型的数据,如整型、字符串、函数,甚至可以是json对象,这一点使得json对象的数据描述能力可以喝xml匹敌。而且json对象可以使用“.”操作符来直接访问它的属性。dojo.xhrGet函数四个属性参数如下:url:请求的服务器的资源url,url标识的只能是文本文件,而不能是二进制文件。handleAs:返回的数据类型。可以是text(default)、json、xml、javascript、json-comment-optional、json-comment-filtered。Dojo将根据handleAs设置的数据类型对从服务器返回的数据进行预处理,再传给
32、load属性指向的回调函数。PDF 文件使用 pdfFactory Pro 试用版本创建)使用使用使用使用xhrGetxhrGet请求资源请求资源请求资源请求资源load:回调函数,这个函数在请求的资源成功返回后被调用。其中的两个参数:response:表示从服务器返回的数据,dojo已经根据handleAs设置的数据类型进行了预处理。ioArgs:这是一个对象,包含调用xhrGet函数时使用的一些属性参数。之所以把这些信息放在一个对象中并传递给回调函数是为了给回调函数一个执行的上下文,让回调函数知道自己属于哪个http请求、请求有哪些参数、返回的数据类型是什么类型等。例如:ioArgs.ur
33、l 请求的url,与调用xhrGet函数时设置值一样ioArgs.query 请求中包括的参数,url中?后面的内容ioArgs.handleAs 如何对返回的数据进行预处理,与调用xhrGet时设置的值一样ioArgs.xhr 调用xhrGet函数使用的XHR对象load:回调函数,这个函数在请求的资源成功返回后被调用。其中的两个参数:response:表示从服务器返回的数据,dojo已经根据handleAs设置的数据类型进行了预处理。ioArgs:这是一个对象,包含调用xhrGet函数时使用的一些属性参数。之所以把这些信息放在一个对象中并传递给回调函数是为了给回调函数一个执行的上下文,让回
34、调函数知道自己属于哪个http请求、请求有哪些参数、返回的数据类型是什么类型等。例如:ioArgs.url 请求的url,与调用xhrGet函数时设置值一样ioArgs.query 请求中包括的参数,url中?后面的内容ioArgs.handleAs 如何对返回的数据进行预处理,与调用xhrGet时设置的值一样ioArgs.xhr 调用xhrGet函数使用的XHR对象PDF 文件使用 pdfFactory Pro 试用版本创建 使用使用使用使用xhrGetxhrGet请求资源请求资源请求资源请求资源error:也是回调函数,但是只在http请求出错之后(比如404错误,请求的资源找不到)才被调
35、用。注意:load、error属性参数所指向的值既可以无名函数也可以是已经定义过的函数名。function display(response,ioArgs)alert(response);function login()dojo.xhrGet(url:”readme.txt”,handleAs:”txt”,load:display,error:display);error:也是回调函数,但是只在http请求出错之后(比如404错误,请求的资源找不到)才被调用。注意:load、error属性参数所指向的值既可以无名函数也可以是已经定义过的函数名。function display(response
36、,ioArgs)alert(response);function login()dojo.xhrGet(url:”readme.txt”,handleAs:”txt”,load:display,error:display);PDF 文件使用 pdfFactory Pro 试用版本创建)应用应用应用应用xhrGetxhrGet提交表单提交表单提交表单提交表单应用xhrGet提交表单与请求资源类似,需要在xhrGet的参数对象中增加一个属性,然后关联需要提交的form。使用xhrGet可以实现异步提交form,在传统的B/S交互模式中,提交form则意味着页面的跳转,但很多情况下页面不用跳转,如用
37、户登录时,用户名或密码错误,这时不跳转页面而是直接给出错误提示信息。应用xhrGet提交表单与请求资源类似,需要在xhrGet的参数对象中增加一个属性,然后关联需要提交的form。使用xhrGet可以实现异步提交form,在传统的B/S交互模式中,提交form则意味着页面的跳转,但很多情况下页面不用跳转,如用户登录时,用户名或密码错误,这时不跳转页面而是直接给出错误提示信息。PDF 文件使用 pdfFactory Pro 试用版本创建 M 应用应用应用应用xhrGetxhrGet提交表单提交表单提交表单提交表单举例dojo.xhrGet(form:”loginForm”,handleAs:”t
38、ext”,handle:handler,content:pwd:”12345”,sync:false);form:需要异步提交的表单id。只有把它设置成想要异步提交的表单的id并在这个表单的onsubmit事件中调用自定义的submitForm()函数,才能真正做到异步提交。需要注意的是在submitForm()函数最后返回了false,这是为了阻止系统默认的表单提交事件,让表单提交异步执行,如果不返回false,会引起页面跳转。handle:也是回调函数,可以说是load和error的混合体,在xhrGet返回时被调用,正常和错误返回的情况都能处理,但优先级比load低,只有在没有设置loa
39、d时才起作用。content:可以修改来自表单的信息。sync:设置同步还是异步提交,默认是异步提交。虽然表单提交的默认方法是Post,但当使用xhrGet提交时,表单提交方式就自动改为Get,所有表单的数据都会变成查询字符串出现在url中,所以服务器只能从查询字符串中取得这些提交的信息。举例dojo.xhrGet(form:”loginForm”,handleAs:”text”,handle:handler,content:pwd:”12345”,sync:false);form:需要异步提交的表单id。只有把它设置成想要异步提交的表单的id并在这个表单的onsubmit事件中调用自定义的s
40、ubmitForm()函数,才能真正做到异步提交。需要注意的是在submitForm()函数最后返回了false,这是为了阻止系统默认的表单提交事件,让表单提交异步执行,如果不返回false,会引起页面跳转。handle:也是回调函数,可以说是load和error的混合体,在xhrGet返回时被调用,正常和错误返回的情况都能处理,但优先级比load低,只有在没有设置load时才起作用。content:可以修改来自表单的信息。sync:设置同步还是异步提交,默认是异步提交。虽然表单提交的默认方法是Post,但当使用xhrGet提交时,表单提交方式就自动改为Get,所有表单的数据都会变成查询字符串
41、出现在url中,所以服务器只能从查询字符串中取得这些提交的信息。PDF 文件使用 pdfFactory Pro 试用版本创建 M xhrxhr框架其他方法的应用框架其他方法的应用框架其他方法的应用框架其他方法的应用除了xhrGet外,dojo的xhr框架还包含xhrPost、xhrPut、xhrDelete、rawXhrPost、rawXhrPut。这几个函数的用法和xhrGet类似,使用方法和参数都可以参考xhrGet。主要区别在于它们的http请求类型。xhrPost一般用来发送表单的数据,当然xhrGet也能做到。区别是xhrPost把表单数据封装在http请求的body部分。除了xhr
42、Get外,dojo的xhr框架还包含xhrPost、xhrPut、xhrDelete、rawXhrPost、rawXhrPut。这几个函数的用法和xhrGet类似,使用方法和参数都可以参考xhrGet。主要区别在于它们的http请求类型。xhrPost一般用来发送表单的数据,当然xhrGet也能做到。区别是xhrPost把表单数据封装在http请求的body部分。PDF 文件使用 pdfFactory Pro 试用版本创建 M xhrxhr框架其他方法的应用框架其他方法的应用框架其他方法的应用框架其他方法的应用dojo.io.iframe方式举例dojo.io.iframe的工作原理:首先会创
43、建一个隐藏的iFrame并插入到父页面的最后,然后设置此iFrame的src属性为dojo-module-path/resources/blank.html。iFrame页面的onload事件的处理函数被设置为父窗体的回调函数。接下来就是在iFrame页面中发送请求,并接受服务器的响应。当iFrame接收到服务器的反馈并加载完成之后,父窗体的回调函数即被调用。dojo.io.iframe方式举例dojo.io.iframe的工作原理:首先会创建一个隐藏的iFrame并插入到父页面的最后,然后设置此iFrame的src属性为dojo-module-path/resources/blank.html。iFrame页面的onload事件的处理函数被设置为父窗体的回调函数。接下来就是在iFrame页面中发送请求,并接受服务器的响应。当iFrame接收到服务器的反馈并加载完成之后,父窗体的回调函数即被调用。PDF 文件使用 pdfFactory Pro 试用版本创建 M Question and AnswerQuestion and AnswerAny comments?Maybe something different?Any comments?Maybe something different?PDF 文件使用 pdfFactory Pro 试用版本创建 M