AJAX提交与FORM提交的区别说明


现在来对比一下ajax与隐藏form提交的利与弊。

1.隐藏form提交,更新数据完成后,需要转到一个空白页面再对原页面进行提交后处理;ajax则不用,可以直接返回原页面进行提交后的处理。可见ajax可以比隐藏form提交少增加一个页面。

2.ajax出于安全性考虑,不能对文件进行操作,所以就不能通过ajax来实现文件上传,而通过隐藏form提交则可以实现这个功能,所以这就是目前用隐藏form提交的主要用途。

现在接下来讲述如何通过隐藏form来实现文件上传

1)首先定义一个用于填写表单内容的form

<form name="form1"></form>

2)接着定义一个用于提交的form

<form name="form2" target="myIframe">  //用于指定提交返回的页面显示在这个隐藏的iframe中

<iframe name="myIframe" style="display:none"></iframe>  //用于存放提交返回后的空白页面

<div id="formInner" style="display:none"></div>  //用于获取form1的html内容,获得form1的表单元素

</form>

3)在form1提交时,进行如下javascript处理

var formInner= document.getElementById("formInner");
formInner.innerHTML = form1.innerHTML;  //复制form1的html代码
form2.action = form1.action;
form2.submit();

4)提交后,进入后台处理,后台处理完成后,需要返回一个空白页面blank.jsp,这个页面是在隐藏的iframe中生成的,所以可以通过parent对象对原页面进行操作。

比如原页面定义了一个updatePageFromSubmit(),则在blank.jsp页面中可以通过parent.updatePageFromSubmit()来调用进行提交返回后的处理



相关阅读:
Linux系统的密码忘记了 无法登录怎么办
linux构建动态WEB服务器安装篇
Win7/Win8.1系统检测不到KB3035583补丁无法升级Win10的解决方法
javascript获取所有同类checkbox选项(实例代码)
解析php做推送服务端实现ios消息推送
win10系统无法创建分区怎么解决?解决办法图文教程
Linux查看磁盘io开销的几种方法
php连接oracle数据库的方法(测试成功)
Win7快捷键Ctrl+Alt+Del任务管理器打不开解决方法
js事件绑定快捷键以ctrl+k为例
C++ auto类型说明符
ExtJS4如何给同一个formpanel不同的url
jquery计算鼠标和指定元素之间距离的方法
C#判断一个String是否为数字类型
快速导航

Copyright © 2016 phpStudy |