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 相关文章推荐
XHTML下,JS浮动代码失效的问题
Nov 12 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
Oct 23 Javascript
让ie6也支持websocket采用flash封装实现
Feb 18 Javascript
js 3秒后跳转页面的实现代码
Mar 10 Javascript
jquery解析xml字符串简单示例
Apr 11 Javascript
node+express+ejs制作简单页面上手指南
Nov 26 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
Aug 02 Javascript
深入理解(function(){... })();
Aug 16 Javascript
javascript html5轻松实现拖动功能
Mar 01 Javascript
详谈js模块化规范
Jul 07 Javascript
Vue自定义toast组件的实例代码
Aug 15 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
Apr 28 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中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
PHP生成唯一订单号的方法汇总
2015/04/16 PHP
php中实现用数组妩媚地生成要执行的sql语句
2015/07/10 PHP
php使用正则表达式获取字符串中的URL
2016/12/29 PHP
服务器安全设置的几个注册表设置
2007/07/28 Javascript
jQuery 动画基础教程
2008/12/25 Javascript
javascript打开新窗口同时关闭旧窗口
2009/01/16 Javascript
js 遍历json返回的map内容示例代码
2013/10/29 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
js实现仿MSN带关闭功能的右下角弹窗代码
2015/09/04 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
详解Ubuntu安装angular-cli遇到的坑
2018/09/08 Javascript
微信小程序 下拉刷新及上拉加载原理解析
2019/11/06 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
2017/07/10 Python
python处理csv中的空值方法
2018/06/22 Python
python将一组数分成每3个一组的实例
2018/11/14 Python
对python制作自己的数据集实例讲解
2018/12/12 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
2021/03/03 Python
纯css实现照片墙3D效果的示例代码
2017/11/13 HTML / CSS
解决margin 外边距合并问题
2019/07/03 HTML / CSS
微软俄罗斯官方网站:Microsoft俄罗斯
2016/09/18 全球购物
外贸采购员岗位职责
2014/03/08 职场文书
留学生求职信
2014/06/03 职场文书
安全责任书怎么写
2014/07/28 职场文书
如何写一份具有法律效力的借款协议书?
2019/07/02 职场文书
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis
CSS中妙用 drop-shadow 实现线条光影效果
2021/11/11 HTML / CSS
java实现web实时消息推送的七种方案
2022/07/23 Java/Android