AJAX提交與FORM提交的區(qū)別說(shuō)明
現(xiàn)在來(lái)對(duì)比一下ajax與隱藏form提交的利與弊。
1.隱藏form提交,更新數(shù)據(jù)完成后,需要轉(zhuǎn)到一個(gè)空白頁(yè)面再對(duì)原頁(yè)面進(jìn)行提交后處理;ajax則不用,可以直接返回原頁(yè)面進(jìn)行提交后的處理。可見(jiàn)ajax可以比隱藏form提交少增加一個(gè)頁(yè)面。
2.ajax出于安全性考慮,不能對(duì)文件進(jìn)行操作,所以就不能通過(guò)ajax來(lái)實(shí)現(xiàn)文件上傳,而通過(guò)隱藏form提交則可以實(shí)現(xiàn)這個(gè)功能,所以這就是目前用隱藏form提交的主要用途。
現(xiàn)在接下來(lái)講述如何通過(guò)隱藏form來(lái)實(shí)現(xiàn)文件上傳
1)首先定義一個(gè)用于填寫(xiě)表單內(nèi)容的form
<form name="form1"></form>
2)接著定義一個(gè)用于提交的form
<form name="form2" target="myIframe"> //用于指定提交返回的頁(yè)面顯示在這個(gè)隱藏的iframe中
<iframe name="myIframe" style="display:none"></iframe> //用于存放提交返回后的空白頁(yè)面
<div id="formInner" style="display:none"></div> //用于獲取form1的html內(nèi)容,獲得form1的表單元素
</form>
3)在form1提交時(shí),進(jìn)行如下javascript處理
var formInner= document.getElementById("formInner");
formInner.innerHTML = form1.innerHTML; //復(fù)制form1的html代碼
form2.action = form1.action;
form2.submit();
4)提交后,進(jìn)入后臺(tái)處理,后臺(tái)處理完成后,需要返回一個(gè)空白頁(yè)面blank.jsp,這個(gè)頁(yè)面是在隱藏的iframe中生成的,所以可以通過(guò)parent對(duì)象對(duì)原頁(yè)面進(jìn)行操作。
比如原頁(yè)面定義了一個(gè)updatePageFromSubmit(),則在blank.jsp頁(yè)面中可以通過(guò)parent.updatePageFromSubmit()來(lái)調(diào)用進(jìn)行提交返回后的處理
相關(guān)文章
AJAX的原理—如何做到異步和局部刷新【實(shí)現(xiàn)代碼】
如何做到異步和局部刷新?下面小編就為大家?guī)?lái)一篇AJAX的原理—如何做到異步和局部刷新【實(shí)現(xiàn)代碼】。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05
Ajax跨域請(qǐng)求COOKIE無(wú)法帶上的完美解決辦法
這篇文章主要介紹了Ajax跨域請(qǐng)求COOKIE無(wú)法帶上的解決辦法,需要的朋友可以參考下2017-04-04
ajax傳遞多個(gè)參數(shù)具體實(shí)現(xiàn)
在使用ajax過(guò)程中,傳遞參數(shù)是在所難免的尤其在特殊情況下傳遞多個(gè)參數(shù),下面與大家分享下具體的是實(shí)現(xiàn)方法,感興趣的朋友可以參考下哈2013-05-05
Ajax獲取響應(yīng)內(nèi)容長(zhǎng)度的方法
這篇文章主要介紹了Ajax獲取響應(yīng)內(nèi)容長(zhǎng)度的方法,涉及Ajax調(diào)用成功后返回方法的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
一個(gè)簡(jiǎn)單的ASP+AJAX留言本源碼下載
一個(gè)簡(jiǎn)單的ASP+AJAX留言本源碼下載...2007-06-06

