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 相关文章推荐
用JTrackBar实现的模拟苹果风格的滚动条
Aug 06 Javascript
JavaScript入门教程(10) 认识其他对象
Jan 31 Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
Jul 13 Javascript
jQuery统计指定子元素数量的方法
Mar 17 Javascript
JavaScript模版引擎的基本实现方法浅析
Feb 15 Javascript
基于jQuery实现照片墙自动播放特效
Jan 12 Javascript
Vue 过渡(动画)transition组件案例详解
Jan 22 Javascript
vue一步步实现alert功能
Jul 05 Javascript
Vue2 Vue-cli中使用Typescript的配置详解
Jul 24 Javascript
VueJS事件处理器v-on的使用方法
Sep 27 Javascript
使用webpack打包后的vue项目如何正确运行(express)
Oct 26 Javascript
ES6中的Javascript解构的实现
Oct 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
Laravel实现构造函数自动依赖注入的方法
2016/03/16 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
firefox下对ajax的onreadystatechange的支持情况分析
2009/12/14 Javascript
判断用户的在线状态 onbeforeunload事件
2011/03/05 Javascript
Javascript call和apply区别及使用方法
2013/11/14 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
2017/09/01 Javascript
VUE中的无限循环代码解析
2017/09/22 Javascript
使用javaScript实现鼠标拖拽事件
2020/04/03 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
2017/10/31 Javascript
vue webpack开发访问后台接口全局配置的方法
2018/09/18 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
2019/05/07 Javascript
js实现图片3D轮播效果
2019/09/21 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
2021/02/23 Vue.js
Python3中多线程编程的队列运作示例
2015/04/16 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
2017/12/12 Python
python读取并定位excel数据坐标系详解
2019/06/26 Python
解决 jupyter notebook 回车换两行问题
2020/04/15 Python
opencv 形态学变换(开运算,闭运算,梯度运算)
2020/07/07 Python
什么是Python包的循环导入
2020/09/08 Python
HTML5+css3:3D旋转木马效果相册
2017/01/03 HTML / CSS
美国高端婴童品牌:Hanna Andersson
2016/10/30 全球购物
盛大笔试题
2016/11/05 面试题
学生会主席事迹材料
2014/01/28 职场文书
大学生校园创业计划书
2014/02/08 职场文书
评析教师个人的自我评价
2014/02/19 职场文书
企业标语口号
2014/06/10 职场文书
班级元旦晚会开幕词
2015/01/29 职场文书
难以忽视的真相观后感
2015/06/05 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP