是的,今天我们要实现的效果是.在不刷新网页的情况下读取并显示服务端的数据.
拿出来我们上次准备好的东西.
1:XMLHTTPRequest对象的函数.
2:Asp输出xml格式的文件.你可以点击查看该文件内容
复制代码 代码如下:
<%
'出自:http://Www.Web666.Net
'作者:康董
'如需转载请务必保留以上信息
'定义一个变量,来保存xml数据
dim xml
xml = "<?xml version='1.0' encoding='gb2312'?><body>"
xml = xml&"<msg>一个简单的Asp输出xml的示例,以后在我们的ajax教程实例中,我们都将使用该文件进行数据的读取操作</msg>"
xml=xml&"</body>"
Response.Clear
Response.ContentType="text/xml"
Response.CharSet="gb2312"
Response.Write xml
Response.End
%>
打开以后你会发现我们使用Asp技术动态的输出一个xml格式的数据.如果你对该技术还不了解,请返回阅读:ajax开始准备篇 在这个输出的数据里面有一个msg标签.标签里包含了一段文字内容.今天我们就读取这个msg标签.并将文字内容显示到你的网页上.
先看下面的代码.并附上效果演示
复制代码 代码如下:
<html>
<head>
<title>创建一个可用的xmlhttpreuqest对象</title>
</head>
<body>
<div id="str"></div><!--请求回来的数据将显示在该div中-->
<input type="button" value="显示数据" onclick="Post()" />
<script type="text/javascript">
function ajax_xmlhttp(){
//在IE中创建xmlhttpRequest,适用于IE5.0以上所有版本
var msXmlhttp = new Array("Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP");
for(var i=0; i<msXmlhttp.length; i++){
try
{
_xmlhttp=new ActiveXObject(msXmlhttp[i]);
}
catch(e)
{
_xmlhttp=null;
}
} //循环创建基于IE浏览器的xmlhttp.结束
//如果非IE浏览器,则创建基于FireFox等浏览器的xmlhttpRequest
if(!_xmlhttp && typeof XMLHttpRequest != "undefined")
{
_xmlhttp=new XMLHttpRequest();
}
return _xmlhttp;
}
//发送请求函数
function Post(){
var ajax = ajax_xmlhttp(); //将xmlhttprequest对象赋值给一个变量.
ajax.open("post","web_ajax.asp",true);//设置请求方式,请求文件,异步请求
ajax.onreadystatechange = function(){//你也可以这里指定一个已经写好的函数名称
if(ajax.readyState==4){//数据返回成功
if(ajax.status==200){//http请求状态码返回ok
var xmlData = ajax.responseXML;
var msg = xmlData.getElementsByTagName("msg");//获取所有的msg元素
var data = msg[0].firstChild.nodeValue;
document.getElementById("str").innerHTML = data;
}
}
}
ajax.send(null);
}
</script>
</body>
</html>
下面让我来慢慢分析该实例是如何实现的.在上面的代码中除了昨天我们创建的XMLHTTPRequest函数以外.在最上面多了一个ID属性为str的div, 该div的作用是用来显示我们请求回的数据.然后我们新写了一个名字为Post的函数.该函数的作用是当你点击读取数据按扭.发送请求,传回数据, 显示数据.
我们先来看Post函数的第一行:var ajax = ajax_xmlhttp(); 该行的意思是说将具有XMLHTTPRequest对象的函数赋值给一个名字为ajax的变量, 这时ajax变量的自身就等于了XMLHTTPRequest对象.我们可以使用这个变量来引用XMLHTTPRequest对象中的各个方法和属性.
第二行:ajax.open("post","web_ajax.asp",true); 表示指定一个请求,请求方式为post,请求的服务端网页为web_ajax.asp,true代表为异步请求. 你可以参考:open方法
第三行:ajax.onreadystatechange=function(){},指定了一段自定义程序.我们看function里的内容.当readyState状态等于4的时候,readyState等于4即代表请求的数据已被成功返回!并且status 返回200,status代表http请求状态码,返回200代表ok. 与此同时我们使用responseXML接收服务端传回的所有数据.responseXML代表以xml格式来接收数据.
我们将服务端返回的所有xml数据赋值给一个xmlData的变量.xmlData.getElementsByTagName("msg");即代表获取返回的xml数据中名字为msg所有的标签.你可以参考:getElementsByTagName解释与实例
msg[0]代表引用第一个msg标签.事实上我们的数据内也只存在一个msg.并返回该标签第一个子元素的文本内容.msg的第一个子元素即是那段文字.nodeValue代表获取这些文字.参考:firstChild方法与nodeValue 当返回的数据成功被解析,找出页面内id为str的div,使用innerHTML将数据显示到网页中.
Post函数中最后一行:ajax.send(null);这个大家一看便知.发送请求.null代表发送一个空的请求,没有数据要提交.
最后我们重点讲一下onreadysatechange这个属性.说他是属性,但他具有事件机制.也就是说你可以为他指定一个函数.onreadystatechange的工作原理是:每次readyState的状态改变.都会执行onreadystatechange指定的那个函数. 其实在ajax.send(null)没有执行之前.onreadystatechange已经被执行了至少一次了.因为当调用了open方法以后,readystate的状态会发生变化.因此会触发onreadystatechange的函数.这类似一个递归机制.readystate的状态发生变化 执行onreadystatechange的函数.而我们又在函数里判断readysate状态值,其实在一个完整的请求过程中,readyState至少会发生4次变化.根据浏览器会有所不同.只有当readystate等于4的时候.我们开始接收数据并解析.如果你还不够明白,请仔细阅读:onreadystatechange属性 readyState方法,以及status
好,我们这次的"ajax初试之读取数据篇"就到此为止,如果你还有不明白的地方,请加以练习,慢慢揣摩.相信会有所收获.下一篇我们讲:"ajax读取数据到表格"
相关推荐:
SEO韩国:为您开启国际市场的增长之门,seo文章标题有哪些
SEO妍:搜索引擎优化的艺术,轻松打造网络营销新未来,辽宁网站建设贵不贵
ChatGPT打不开网页?看完这篇你就懂了!,国内ai写作安卓软件
seo网页优化什么意思,seo网站优化必知的10个问答,问吧,【解决】百度不知道 ,ai识别点读机
什么是seo发外链,seo外链类型有哪些 ,小小苏ai
SEO考核:如何通过精准的SEO优化提升网站排名与流量,茶艺营销推广方案怎么写
seo软件叫什么,seo软件视频教程 ,eps ai 缩略图
seo适用于什么领域,seo适用于什么领域中 ,ai智能翻译写作机器人v1.0
SEO优化要钱吗?揭秘SEO投资背后的价值与回报,ai领域
SEO搜索关键词是什么意思?全方位解析关键词优化的核心要素,lol ai图片
OpenAIGPT:开启智能时代的语言革命,ai辣妹动漫
ChatGPT安装包Windows版-让智能助手触手可得,q和ai
ChatGPT-4中文免费破解版:无需付费,体验最强AI助手,ai写作生成器官方下载
SEO优化如何为网站做好关键词研究和优化,ai直通
SEO调整,助力网站流量爆发式增长!,江都seo优化排名
SEO与SEM策略:提升网站流量与品牌曝光的双剑合璧,ai补图
SEO网络营销:如何通过精准优化提升品牌价值,青州建设网站电话
seo需要会什么,seo要会些什么 ,ai313414919
怎么查一篇文章是不是AI写的?你需要这几个关键方法!
ChatGPT中显示已进行一处编辑,但看不到内容?你需要了解的隐藏问题!,ai敲
用AI创作的文章算原创吗?深度背后的逻辑与意义
SEO关键词的选择步骤:让你的网站在搜索引擎中脱颖而出,ai书法化
seo用什么法宝,列出5种seo赚钱方式 ,ai怎么更改文档样式
优化投入,让企业更具竞争力,怎样推广营销方案
什么是seo反连接,网站反链多好还是少好 ,网易ai产品
ChatGPT无法加载?检查您的网络设置并尝试重启ChatGPT,助您畅享无障碍智能对话体验,ai记录人
seo需要做些什么,做seo的 ,超级ai地图
仿写AI:智能时代的创作革命,洛江区移动房网站推广
怎样利用AI写文章,轻松提升写作效率
ChatGPT5.0为什么一直没出来?背后的技术与战略,元宵节ai趣赏月
SEO招标:如何通过专业SEO服务助力企业脱颖而出,牡丹江关键词排名怎么样
代哥SEO-让您的网站迅速登顶搜索引擎的秘密武器,济南关键词的排名优化
如何识别文章是否由AI写作:技巧与方法解析
AI.生成重新定义创造力的新纪元
seo能解决什么问题,seo会遇到哪些问题 ,挚爱花嫁ai
GPT怎么收费?揭秘AI技术的定价与价值,ai报考高考
SEO详解:如何优化你的网站提升排名,获得更多流量,伊春湖南网站优化推广
SEO发明:引领数字时代营销革命的力量,速卖通外贸推广网站
seo经理做什么的,seo经理招聘 ,盲人ai眼镜
seo都有什么意思,seo 啥意思 ,ai园林
互联网快排:助力企业网站流量爆发的秘密武器,西安网站建设找资源公司
SEO提供:如何通过精准的SEO策略提升网站流量与品牌影响力,刷关键词排名立的火星
seo网站排名优化哪家好,seo网站优化平台 ,ai斗蟋
SEO要点:提升网站排名的核心技巧与策略,福田市网站建设推广费用
AI免费写作一键生成,效率与创意的完美结合
AI网页版本:开启智能时代的新篇章,拼音标调ai
ChatGPT免费版每天提问有次数限制吗?揭秘如何高效使用AI助手!,机甲ai手绘
ChatGPT无法使用?了解原因及解决方法,轻松恢复智能对话体验!,ai满版图案
SEO到底怎么做?揭秘从零到精通的完整SEO优化攻略,鸟瞰ai
SEO挣钱之道:如何通过SEO实现网络盈利,宁晋网站建设商家