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 相关文章推荐
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
Oct 17 Javascript
js宝典学习笔记(上)
Jan 10 Javascript
HTML 自动伸缩的表格Table js实现
Apr 01 Javascript
jquery ajax跨域解决方法(json方式)
Feb 04 Javascript
jquery实现的3D旋转木马特效代码分享
Aug 25 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
Dec 03 Javascript
详解JavaScript中的自定义事件编写
May 10 Javascript
jQuery实现手机版页面翻页效果的简单实例
Oct 05 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
Nov 22 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
Sep 04 Javascript
vue开发环境配置跨域的方法步骤
Jan 16 Javascript
vue 插件的方法代码详解
Jun 06 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
如何对PHP程序中的常见漏洞进行攻击(下)
2006/10/09 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
2015/07/31 PHP
PHP MVC框架路由学习笔记
2016/03/02 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
js chrome浏览器判断代码
2010/03/28 Javascript
javascript 自动填写表单的实现方法
2010/04/09 Javascript
javascript 模式设计之工厂模式学习心得
2010/04/27 Javascript
JS特权方法定义作用以及与公有方法的区别
2013/03/18 Javascript
js循环改变div颜色具体方法
2013/06/25 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
javascript实现倒计时N秒后网页自动跳转代码
2014/12/11 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
vue实现简单的星级评分组件源码
2018/11/16 Javascript
JavaScript 作用域scope简单汇总
2019/10/23 Javascript
vue组件传值的实现方式小结【三种方式】
2020/02/05 Javascript
详解JS函数防抖
2020/06/05 Javascript
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
[01:34]DAC2018主赛事第四日五佳镜头 Gh巨牙海民助Miracle-死里逃生
2018/04/07 DOTA
在Python中封装GObject模块进行图形化程序编程的教程
2015/04/14 Python
详解python之配置日志的几种方式
2017/05/22 Python
python做量化投资系列之比特币初始配置
2018/01/23 Python
pandas 实现字典转换成DataFrame的方法
2018/07/04 Python
python reverse反转部分数组的实例
2018/12/13 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
Python绘图之柱形图绘制详解
2020/07/28 Python
攀岩、滑雪、徒步旅行装备:Black Diamond Equipment
2019/08/16 全球购物
市优秀教师事迹材料
2014/02/05 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
乱丢垃圾袋检讨书
2014/10/08 职场文书
后勤工作个人总结
2015/02/28 职场文书
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python
Python使用pyecharts控件绘制图表
2022/06/05 Python