前面学习了使用dojo的XHR对象去进行ajax交互,而dojo提供了另外的一种并不依靠XHR对象的交互方式,使用io模块的iframe可以完成同样的功能
<html><body>
<script src="../dojo/dojo/dojo.js"
djConfig="parseOnLoad: true"></script>
<script>
dojo.require("dojo.io.iframe" );
function iframeTest(){
dojo.io.iframe.send({
form: dojo.byId('testForm') ,
url: "data.jsp" ,
method: "post" ,
handleAs: "html" ,
load: function(response, ioArgs) {
alert(response);
}
});
}
</script>
<form id="testForm" method="post" >
Name:<input type="text" name="name" size="40" /><br />
Sex:<input type="radio" name="sex" value="m" >
Male<input type="radio" name="sex" value="f"> Female<br />
<input type="button" name="sub" value="submit" onclick="iframeTest()" />
</form>
</body></html>
iframe的send方法的参数仍然是一个json对象,而且参数名跟前面的xhrGet方法参数的json对象参数名很类似,但是注意一点,handleAs属性的值大部分是html,因为iframe中本来就是保存的一个html页面,如果使用的是其他类型,如text,jsong等,则在服务器端必须使用 <textarea></textarea> 把要返回的数据包装起来,比如 hello, world 要被包装成 <textarea>hello,world</textarea>,所以最后存在 iframe 中的是一个文本域(textarea),这个文本域包含了从服务器端返回的数据。这么做的原因很简单,就是为了保持从服务器返回的数据“一成不变”,因为任何字符数据都可以“安全的”放在 HTML 页面的文本域中。想像一下,我们是不是可以在文本域中输入各种字符! dojo.io.iframe 会对 textarea 包装的数据进行处理:首先把 textarea 标签去掉,然后把数据转换为 handleAs 指定的类型传递给 handle中设置的回调函数。
dojo.io.iframe 是如何工作的呢?除了 XHR 对象之外还有什么方法可以实现表单的异步提交?其实这一切都很简单,dojo.io.iframe 首先会创建一个隐藏的 iframe 并插入到父页面的最后,然后设置此 iframe 的 src 属性为dojo-module-path/resources/blank.html(dojo-module-path 指 dojo 包所在的目录),iframe 页面的 onload 事件的处理函数被设置为父窗体的回调函数。接下来就是在 iframe 页面中发送请求,并接收服务器的响应。当 iframe 接收到服务器的反馈并加载完之后,父窗体的回调函数即被调用。
分享到:
相关推荐
实例VS2010代码 dojo_iframe无刷新上传文件demo.rar dojo_iframe无刷新上传文件demo.rar dojo_iframe无刷新上传文件demo.rar dojo_iframe无刷新上传文件demo.rar dojo_iframe无刷新上传文件demo.rar
使用_Dojo_的_Ajax_应用开发进阶教程
dojo学习001_20101122.dojo学习文件
dojo_part003_003_003dojo_part003_003_003dojo_part003_003_003
pencil非常好用的web原型设计工具,这个是DOJO GUI的模板
DOJO_API_中文参考手册 附加注释实例 特别适合初学者使用,学习Dojo 必备
DOJO_API_中文参考手册.pdf 看看就知道 看看就知道
dojo_part001_001_001dojo_part001_001_001dojo_part001_001_001
Dojo中文手册_IT168文库,非常详细的DOJO组件讲解,AJAX使用
dojo_part003_003_003dojo_part003_003_003dojo_part003_003_003
对arcgis for js API的离线部署进行简单配置描述,涉及AMD规范的定义与讲解,其中也提到了安装postgress数据库的基本步骤,对想发布地图服务和处理数据有所帮助
Dojo Mobile 是基于 Dojo 的小部件集合,用于创建移动 Web 应用程序。使用 Dojo Mobile,您可以开发轻量级、高性能的移动 Web 应用程序
dojo的ajax支持,可以作为参考手册,不过是英文版的。
Dojo中文手册——实战dojo工具包。一个品质远远超出“原型建造”的Ajax库。
用最近的dojo1.2.1制作前端的ajax购书网站,分注册用户购物和非注册用户购物两部分(其实非注册用户只是个噱头),一个页面完成所有必要功能,页面颜色有点难看,管理员部分没有做。后端为servlet+ms sqlserver2k,...
文章用几个简单的实例,让初学者了解dojo的相关知识,和如何使用dojo的相关知识.