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 陷阱 window全局对象
Nov 26 Javascript
IE 下的只读 innerHTML
Aug 21 Javascript
一个简单的jQuery插件制作 学习过程及实例
Apr 25 Javascript
js报错 Object doesn't support this property or method的原因分析
Mar 31 Javascript
深入领悟JavaScript中的面向对象
Nov 18 Javascript
jQuery实现分隔条左右拖动功能
Nov 21 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
May 05 Javascript
什么是JavaScript注入攻击?
Sep 14 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
Jan 24 Javascript
Ionic项目中Native Camera的使用方法
Jun 07 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
Aug 06 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
Jan 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
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
php读取数据库信息的几种方法
2008/05/24 PHP
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
PHP中文件上传的一个问题
2010/09/04 PHP
PHP中几种常见的超时处理全面总结
2012/09/11 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
2014/09/23 PHP
Laravel中的chunk组块结果集处理与注意问题
2018/08/15 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
JS 图片缩放效果代码
2010/06/09 Javascript
JQuery EasyUI 数字格式化处理示例
2014/05/05 Javascript
jquery css 设置table的奇偶行背景色示例
2014/06/03 Javascript
angular简介和其特点介绍
2015/01/29 Javascript
jquery实现先淡出再折叠收起的动画效果
2015/08/07 Javascript
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
js输入框使用正则表达式校验输入内容的实例
2017/02/12 Javascript
写给vue新手们的vue渲染页面教程
2017/09/01 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
Python判断列表是否已排序的各种方法及其性能分析
2016/06/20 Python
python中urllib.unquote乱码的原因与解决方法
2017/04/24 Python
基于Python pip用国内镜像下载的方法
2018/06/12 Python
vue.js实现输入框输入值内容实时响应变化示例
2018/07/07 Python
Django csrf 验证问题的实现
2018/10/09 Python
python pickle存储、读取大数据量列表、字典数据的方法
2019/07/07 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
python 6行代码制作月历生成器
2020/09/18 Python
HTML5对比HTML4的主要改变和改进总结
2016/05/27 HTML / CSS
好听的队名和口号
2014/06/09 职场文书
创文明城市标语
2014/06/16 职场文书
体育馆的标语
2014/06/24 职场文书
公共机构节能宣传周活动总结
2014/07/09 职场文书
mysql优化之query_cache_limit参数说明
2021/07/01 MySQL
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL
Redis 异步机制
2022/05/15 Redis