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同时提交多个Web表单的方法
Dec 26 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
Apr 07 Javascript
javascript实现根据时间段显示问候语的方法
Jun 18 Javascript
js数组去重的5种算法实现
Nov 04 Javascript
JS组件Form表单验证神器BootstrapValidator
Jan 26 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
Sep 05 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
Dec 07 Javascript
JavaScript中数组常见操作技巧
Sep 01 Javascript
vue引入新版 vue-awesome-swiper插件填坑问题
Jan 25 Javascript
微信小程序实现上传图片功能
May 28 Javascript
详解webpack loader和plugin编写
Oct 12 Javascript
JavaScript array常用方法代码实例详解
Sep 02 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 正则匹配函数体
2009/08/25 PHP
php入门学习知识点七 PHP函数的基本应用
2011/07/14 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
2013/05/10 PHP
php实现的递归提成方案实例
2015/11/14 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
Laravel框架中自定义模板指令总结
2017/12/17 PHP
PHP封装的完整分页类示例
2018/08/21 PHP
javascript判断用户浏览器插件安装情况的代码
2011/01/01 Javascript
javascript中的对象创建 实例附注释
2011/02/08 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
基于jQuery的倒计时实现代码
2012/05/30 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
2013/04/01 Javascript
微信JS接口汇总及使用详解
2015/01/09 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
2015/10/30 Javascript
js实现数组冒泡排序、快速排序原理
2016/03/08 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
利用transition实现文字上下抖动的效果
2017/01/21 Javascript
vue 运用mock数据的示例代码
2017/11/07 Javascript
vue移动端项目缓存问题实践记录
2018/10/29 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
微信小程序实现的一键拨号功能示例
2019/04/24 Javascript
javascript sort()对数组中的元素进行排序详解
2019/10/13 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
Python3.x版本中新的字符串格式化方法
2015/04/24 Python
python复制文件到指定目录的实例
2018/04/27 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
python实现高斯(Gauss)迭代法的例子
2019/11/20 Python
利用matplotlib实现根据实时数据动态更新图形
2019/12/13 Python
写好自荐信的几个要点
2013/12/26 职场文书
师说教学反思
2014/02/07 职场文书
工程售后服务方案
2014/06/08 职场文书
大学生作弊检讨书
2014/09/11 职场文书
民间个人借款协议书
2014/09/30 职场文书
总结Python连接CS2000的详细步骤
2021/06/23 Python
MySQL 如何限制一张表的记录数
2021/09/14 MySQL
Java存储没有重复元素的数组
2022/04/29 Java/Android