Web層改進(jìn)II-用xmlhttp 無(wú)聲息提交復(fù)雜表單
更新時(shí)間:2007年01月22日 00:00:00 作者:
xmlhttp是在RIA時(shí)代沒(méi)有來(lái)臨之前,最能使B/S程序遠(yuǎn)離每個(gè)動(dòng)作刷新一次頁(yè)面的痛苦做法,同時(shí)也是最平民化的一項(xiàng)技
術(shù),HelloWord幾句話(huà)就完成了。
不過(guò),大家對(duì)xmlhttp的應(yīng)用大多只以Get方式在URL里傳遞少數(shù)的變量。其實(shí)即使是大量數(shù)據(jù)的Form,,只要用
Javascript稍加封裝,,一樣可以用簡(jiǎn)單的用xmlhttp完成提交,真正做到讓用家賓至如歸,不到頁(yè)面本身需要刷新的時(shí)候
,決不去刷新用家的界面。
客戶(hù)端:
function xmlhttp_submit(form_object,url)
for i = 0 to form_object.elements.length-1
set elem = form_object.elements(i)
form_value=form_value & URLEncoding(elem.name) & "=" & URLEncoding(elem.value) &"&"
Next
set xmlhttp = CreateObject("Microsoft.XMLHTTP")
xmlhttp.open "POST",url,false
xmlhttp.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
xmlhttp.send(form_value)
end function
上面這段代碼遍歷了form里的對(duì)象,組裝出form_value字串,然后通過(guò)send()方法以POST方式(不受長(zhǎng)度限制)發(fā)送給服務(wù)
器端。
又是經(jīng)典的中文編碼問(wèn)題,需要加多一個(gè)URLEncoding函數(shù)把變量值的字符串編成UTF-8格式,也因此要采用自己不熟悉的
VBScript來(lái)寫(xiě)form_submit() 。
Function URLEncoding(vstrIn)
strReturn = ""
For i = 1 To Len(vstrIn)
ThisChr = Mid(vStrIn,i,1)
If Abs(Asc(ThisChr)) < &HFF Then
strReturn = strReturn & ThisChrElse
innerCode = Asc(ThisChr)
If innerCode < 0 Then
innerCode = innerCode + &H10000
End If
Hight8 = (innerCode And &HFF00)\ &HFF
Low8 = innerCode And &HFF
strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
End IfNext
URLEncoding = strReturn
End Function
服務(wù)器端
沒(méi)有任何需要特別作的東西,如常響應(yīng)請(qǐng)求就是了。
術(shù),HelloWord幾句話(huà)就完成了。
不過(guò),大家對(duì)xmlhttp的應(yīng)用大多只以Get方式在URL里傳遞少數(shù)的變量。其實(shí)即使是大量數(shù)據(jù)的Form,,只要用
Javascript稍加封裝,,一樣可以用簡(jiǎn)單的用xmlhttp完成提交,真正做到讓用家賓至如歸,不到頁(yè)面本身需要刷新的時(shí)候
,決不去刷新用家的界面。
客戶(hù)端:
function xmlhttp_submit(form_object,url)
for i = 0 to form_object.elements.length-1
set elem = form_object.elements(i)
form_value=form_value & URLEncoding(elem.name) & "=" & URLEncoding(elem.value) &"&"
Next
set xmlhttp = CreateObject("Microsoft.XMLHTTP")
xmlhttp.open "POST",url,false
xmlhttp.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
xmlhttp.send(form_value)
end function
上面這段代碼遍歷了form里的對(duì)象,組裝出form_value字串,然后通過(guò)send()方法以POST方式(不受長(zhǎng)度限制)發(fā)送給服務(wù)
器端。
又是經(jīng)典的中文編碼問(wèn)題,需要加多一個(gè)URLEncoding函數(shù)把變量值的字符串編成UTF-8格式,也因此要采用自己不熟悉的
VBScript來(lái)寫(xiě)form_submit() 。
Function URLEncoding(vstrIn)
strReturn = ""
For i = 1 To Len(vstrIn)
ThisChr = Mid(vStrIn,i,1)
If Abs(Asc(ThisChr)) < &HFF Then
strReturn = strReturn & ThisChrElse
innerCode = Asc(ThisChr)
If innerCode < 0 Then
innerCode = innerCode + &H10000
End If
Hight8 = (innerCode And &HFF00)\ &HFF
Low8 = innerCode And &HFF
strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
End IfNext
URLEncoding = strReturn
End Function
服務(wù)器端
沒(méi)有任何需要特別作的東西,如常響應(yīng)請(qǐng)求就是了。
相關(guān)文章
javascript從image轉(zhuǎn)換為base64位編碼的String
選擇webview把image以base64位編碼的方式傳給本地應(yīng)用,就不需要再取一次圖片文件了,從而提高了速度2014-07-07
JS實(shí)現(xiàn)文檔加載完成后執(zhí)行代碼
本文給大家講述的是使用javascript實(shí)現(xiàn)文檔加載完成后再執(zhí)行代碼的方法和示例,非常簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。2015-07-07
js如何計(jì)算斐波那契數(shù)列第n項(xiàng)的值
這篇文章主要介紹了js如何計(jì)算斐波那契數(shù)列第n項(xiàng)的值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
Bootstrap modal只加載一次數(shù)據(jù)的解決辦法(推薦)
這篇文章主要介紹了Bootstrap modal只加載一次數(shù)據(jù)的解決辦法,以及bootstrap模態(tài)框的簡(jiǎn)單使用,需要的朋友可以參考下2017-11-11

