Ajax表单

本文由lxingyue1009贡献
//核心对象变量
var xmlHttp;
//区分浏览器创建XMLHttpRequest核心对象
function create(){
if(window.XMLHttpRequset){
xmlHttp = new XMLHttpRequest();
}else if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
//ajax核心执行方法(此处为提交到servlet处理后,返回纯文本)
function run(){
create();
var value = document.getElementById("id").value;
var URL = "/ajax/servlet/ajax?name="+value;
xmlHttp.open("GET",URL,true);
xmlHttp.onreadystatechange=callback;
xmlHttp.send(null);
}
//回调函数
function callback(){
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
var v = xmlHttp.responseText;
alert(v);
}
}
}
列子
///脚本javascript//
var reYS = "";
function GetYSMon(){
reYS = "";
GetInfo();
document.forms[0].YSMoney.value = reYS;
}
function GetInfo(){
var thisFrm = document.forms[0];
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
var infoxm = document.forms[0].xiangmu.options[document.forms[0].xiangmu.selectedIndex].text; //根据项目名称xiangmu查询
var URL="./ag_get_v_f_SubYS?openagent&xm="+infoxm;
xmlhttp.onreadystatechange = SetInfo;
xmlhttp.open("POST", URL, true);
xmlhttp.send();
}
function SetInfo(){
var thisFrm = document.forms[0];
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
var xmlDoc = xmlhttp.responseXML.documentElement;
var Data1 = "";
if(xmlDoc.getElementsByTagName("Data1")[0].childNodes[0] != null){
Data1 = xmlDoc.getElementsByTagName("Data1")[0].childNodes[0].nodeValue;
}
if(Data1!=""){
reYS = Data1;
}
}
}
//代理LotusScript///
Sub Initialize
On Error Goto errhandle
Set F = New f_default
Dim session As New NotesSession
Dim db As NotesDatabase
Dim ysdb As NotesDatabase
Dim doc As NotesDocument
Dim ysdoc As NotesDocument
Dim vw As NotesView
Dim ysvw As NotesView
ReYS=""
Dim strInfo As Variant
Dim xm As String
Set doc = session.DocumentContext '定义当前上下文文档
Set ysdb = session.GetDatabase("","oadta/yusuan.nsf")
Set ysvw=ysdb.GetView("v_key_YusuanByName")
strInfo = F.QuertstringToArrary(doc.Query_String_Decoded(0), "&")
xm = F.QueryString("xm", strInfo)
Set ysdoc=ysvw.GetDocumentByKey(xm,False)
ReYS=ysdoc.YSMoney(0)
Print {Content-type: text/xml;charset=utf-8}
Print {<MainNode>}
Print {<Data1>} + Cstr(ReYS) + {</Data1>}
Print {</MainNode>}
Exit Sub
errhandle:
Msgbox Error
Msgbox Erl
Call F.printerrmsg(doc,"Initialize")
Exit Sub
End Sub
问题/
1、
xmlhttp的onreadystatechange为什么在send前面(onreadystatechange不是在看发送的消息的状态吗,为什么在send前面啊,send才是给服务器发送消息啊)
答:onreadystatechange只是告诉xmlhttp当它的state发生改变的时候执行名为qzzs的方法 并不是马上执行的 //

2.
mlHttp.open("GET", url, false);
改为
xmlHttp.open("GET", url, true);
flase为同步,true为异步

3.
问题出现在:xmlHttp.open("GET", url, false); false需要等待服务器的响应时间并且会锁定UI。那么有什么办法给客户一个友好的提示:It's in procesing, please wait....(加载中,请稍后...)
答:
<div id="myDiv" style="display:none">It's in procesing, please wait.... </div>
点击 Ajax 执行调用后台时,显示层。

document.all.myDiv.style.display="block";
在回调函数里面隐藏层,程序到回调函数,则表示运行回客户端了
document.all.myDiv.style.display="none";
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值