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 相关文章推荐
jquery.simple.tree插件 更简单,兼容性更好的无限树插件
Sep 03 Javascript
jQuery1.6 使用方法一
Nov 23 Javascript
window.parent与window.openner区别介绍
Apr 12 Javascript
js获取html页面节点方法(递归方式)
Dec 13 Javascript
jquery中的on方法使用介绍
Dec 29 Javascript
js+div实现文字滚动和图片切换效果代码
Aug 27 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
Nov 30 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)
Dec 02 Javascript
基于daterangepicker日历插件使用参数注意的问题
Aug 10 Javascript
Js中async/await的执行顺序详解
Sep 22 Javascript
微信小程序云开发实现云数据库读写权限
May 17 Javascript
vue.js中ref和$refs的使用及示例讲解
Aug 14 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
很实用的一个完整email发送程序
2006/10/09 PHP
递归删除一个节点以及该节点下的所有节点示例
2014/03/19 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
cnblogs TagCloud基于jquery的实现代码
2010/06/11 Javascript
浅析Prototype的模板类 Template
2011/12/07 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
js点击文本框后才加载验证码实例代码
2015/10/20 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
2015/11/07 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
Bootstrap实现登录校验表单(带验证码)
2016/06/23 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
2017/06/09 jQuery
分分钟学会vue中vuex的应用(入门教程)
2017/09/14 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
js实现图片上传并预览功能
2018/08/06 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
Python实现的栈(Stack)
2018/01/26 Python
Python 支付整合开发包的实现
2019/01/23 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
python 日志模块logging的使用场景及示例
2021/01/04 Python
家得宝官网:The Home Depot(全球最大的家居装饰专业零售商)
2018/12/17 全球购物
Ariat官网:美国马靴和服装品牌
2019/12/16 全球购物
注塑工厂厂长岗位职责
2013/12/02 职场文书
党校培训自我鉴定
2014/02/01 职场文书
运动会跳远广播稿
2014/02/04 职场文书
财务管理专业求职信
2014/06/11 职场文书
2015年春节标语口号
2014/12/09 职场文书
《圆明园的毁灭》教学反思
2016/02/16 职场文书
《风筝》教学反思
2016/02/23 职场文书
Python 中数组和数字相乘时的注意事项说明
2021/05/10 Python