Web层改进II-用xmlhttp 无声息提交复杂表单


Posted in Javascript onJanuary 22, 2007

xmlhttp是在RIA时代没有来临之前,最能使B/S程序远离每个动作刷新一次页面的痛苦做法,同时也是最平民化的一项技
术,HelloWord几句话就完成了。
    不过,大家对xmlhttp的应用大多只以Get方式在URL里传递少数的变量。其实即使是大量数据的Form,,只要用
Javascript稍加封装,,一样可以用简单的用xmlhttp完成提交,真正做到让用家宾至如归,不到页面本身需要刷新的时候
,决不去刷新用家的界面。
客户端:
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里的对象,组装出form_value字串,然后通过send()方法以POST方式(不受长度限制)发送给服务
器端。 
又是经典的中文编码问题,需要加多一个URLEncoding函数把变量值的字符串编成UTF-8格式,也因此要采用自己不熟悉的
VBScript来写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
服务器端
没有任何需要特别作的东西,如常响应请求就是了。

Javascript 相关文章推荐
一个JavaScript的求爱小特效
May 09 Javascript
javascript实现限制上传文件大小
Feb 06 Javascript
javascript实现复选框选中属性
Mar 25 Javascript
浅谈javascript实现八大排序
Apr 27 Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
Aug 11 Javascript
Javascript 对cookie操作详解及实例
Dec 29 Javascript
vue.js实现含搜索的多种复选框(附源码)
Mar 23 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
Apr 14 Javascript
打造通用的匀速运动框架(实例讲解)
Oct 17 Javascript
angularjs实现table增加tr的方法
Feb 27 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
Mar 13 Javascript
Vue实现浏览器打印功能的代码
Apr 17 Javascript
用正则xmlHttp实现的偷(转)
Jan 22 #Javascript
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
Jan 22 #Javascript
Javascript技术技巧大全(五)
Jan 22 #Javascript
深入认识JavaScript中的函数
Jan 22 #Javascript
Ajax::prototype 源码解读
Jan 22 #Javascript
showModalDialog 和 showModelessDialog
Jan 22 #Javascript
javascript 中对象的继承〔转贴〕
Jan 22 #Javascript
You might like
thinkphp实现面包屑导航(当前位置)例子分享
2014/05/10 PHP
初识php MVC
2014/09/10 PHP
php数组随机排序实现方法
2015/06/13 PHP
javascript 尚未实现错误解决办法
2008/11/27 Javascript
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
用jquery实现下拉菜单效果的代码
2010/07/25 Javascript
Jquery选中或取消radio示例
2013/09/29 Javascript
客户端js判断文件类型和文件大小即限制上传大小
2013/11/20 Javascript
利用Keydown事件阻止用户输入实现代码
2014/03/11 Javascript
Angularjs 基础入门
2014/12/26 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
javascript制作的滑动图片菜单
2015/05/15 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
2015/06/01 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
Bootstrap网格系统详解
2016/04/26 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
2016/12/13 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
angularjs的单选框+ng-repeat的实现方法
2018/09/12 Javascript
vue-cli 3.x配置跨域代理的实现方法
2019/04/12 Javascript
详解Vue依赖收集引发的问题
2019/04/22 Javascript
部署vue+Springboot前后端分离项目的步骤实现
2020/05/31 Javascript
three.js中多线程的使用及性能测试详解
2021/01/07 Javascript
使用Python中的cookielib模拟登录网站
2015/04/09 Python
python实现RSA加密(解密)算法
2016/02/17 Python
python使用tornado实现登录和登出
2018/07/28 Python
PHP统计代码行数的小代码
2019/09/19 Python
CSS3系列之3D制作方法案例
2017/08/14 HTML / CSS
x-ua-compatible content=”IE=7, IE=9″意思理解
2013/07/22 HTML / CSS
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
服务之星获奖感言
2014/01/21 职场文书
初中美术教学反思
2014/01/29 职场文书
2015年社区党建工作汇报材料
2015/06/25 职场文书
2015年美容师个人工作总结
2015/10/14 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
纪念建国70周年演讲稿
2019/07/19 职场文书
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android