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 相关文章推荐
IE 缓存策略的BUG的解决方法
Jul 21 Javascript
IE8 chrome中table隔行换色解决办法
Jul 09 Javascript
需要做特殊处理的DOM元素属性的访问
Nov 05 Javascript
confirm的用法示例用于按钮操作时确定是否执行
Jun 19 Javascript
JavaScript开发人员的10个关键习惯小结
Dec 05 Javascript
jQuery焦点图切换特效代码分享
Sep 15 Javascript
自己动手写的jquery分页控件(非常简单实用)
Oct 28 Javascript
JS实现保留n位小数的四舍五入问题示例
Aug 03 Javascript
js实现StringBuffer的简单实例
Sep 02 Javascript
JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome
Jan 05 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
Jan 20 Javascript
Three.JS实现三维场景
Dec 30 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 分页类(模仿google)-面试题目解答
2009/09/13 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
33道php常见面试题及答案
2015/07/06 PHP
PHP页面跳转操作实例分析(header方法)
2016/09/28 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
JavaScript自定义事件介绍
2013/08/29 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
jQuery实现定位滚动条位置
2016/08/05 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
Ajax基础知识详解
2017/02/17 Javascript
无循环 JavaScript(map、reduce、filter和find)
2017/04/08 Javascript
mac下的nodejs环境安装的步骤
2017/05/24 NodeJs
JS实现评价的星星功能
2017/08/20 Javascript
微信小程序实现下拉刷新和轮播图效果
2017/11/21 Javascript
javaScript手机号码校验工具类PhoneUtils详解
2017/12/08 Javascript
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
Layer弹出层动态获取数据的方法
2018/08/20 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
深入理解 TypeScript Reflect Metadata
2019/12/12 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
学习python的几条建议分享
2013/02/10 Python
python类和函数中使用静态变量的方法
2015/05/09 Python
Python引用传值概念与用法实例小结
2017/10/07 Python
在双python下设置python3为默认的方法
2018/10/31 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
HTML页面中添加Canvas标签示例
2015/01/01 HTML / CSS
美国杂志订阅折扣与优惠网站:Magazines.com
2016/08/31 全球购物
在校大学生自我评价范文
2014/09/12 职场文书
先进党员事迹材料
2014/12/24 职场文书
给男朋友的道歉短信
2015/05/12 职场文书
音乐剧猫观后感
2015/06/04 职场文书
答谢酒会主持词
2015/07/02 职场文书
Python控制台输出俄罗斯方块移动和旋转功能
2021/04/18 Python
浅谈node.js中间件有哪些类型
2021/04/29 Javascript