ajax.asp
现在时间是< %=Now()%>
ajax.html
<script type="text/javascript">
function Ajax(){
var xmlHttp=null;
if(window.ActiveXObject){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP")
}catch(e){}
}
}else if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
if(xmlHttp!=null){
xmlHttp.open("GET","ajax.asp",true);
xmlHttp.onreadystatechange=Call;
xmlHttp.send(null);
}
var p=document.getElementById("content");
function Call(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
p.innerHTML=xmlHttp.responseText;
}
}
}
}
</script>
<button onclick="Ajax()">获取</button>
这里使用ajax算是有些麻烦
再看看使用jQuery
<script type="text/javascript">
$(function(){
$("button").click(function(){
$("p").load("ajax.asp");
});
});
</script>
$.load()方法
上面使用了load函数。load语法如下,
load(url[,data][,callback])//url:string类型,请求HTML页面的URl地址;data:Object类型,发送到服务器的key/value数据;callback,Function类型,请求完成时的回调函数
其中url可使用选择器接收该url中指定地址的某一元素内的文本。这是一个异常强大的功能,假如使用传统js方式的话就需要使用replace去过滤某些字符,还可能要用到Regex。而现在jQuery只要简单的选择器过滤就可以了。
$("p").load("ajax.asp h4"),ajax.asp内容如下:
<h4>获取指定内容的标题</h4>
<p><%
response.Expires=0
response.Write(now())
%></p>
第二个参数data
<script type="text/javascript">
$(function(){
$("button").click(function(){
$("p").load("ajax_data.asp",{name:"wang",age:"23"},function(responseText,textStatus,XmlHttp){
alert("xmlHttp对象:" + XmlHttp + "/r/n请求状态:" + textStatus + "/r/n获得数据:" + responseText);
});
});
});
</script>
ajax_data.asp代码
<%
if request.form("name")<>"" then
response.Write("您的姓名为:" & request("name"))
response.Write(",年龄是" & request("age"))
end if
%>
其中参数{name:"王洪剑",age:"23"}显示声明时是以post方式来请求数据的;默认不加参数时以get方式请求。因此应当使用request.Form("name")来获得数据。
callback代表载入返回数据后执行的函数,它有三个参数可供选择
- reponseText//返回的文本
- textStatus//请求状态:sucess|error|notmodified|timeout
- XmlHttpRequest//XmlHttpRequest对象,Object类型