JS中xmlhttp异步传送的应用
来源:互联网 发布:手写数字识别软件 编辑:程序博客网 时间:2024/04/28 11:54
先创建一个HTML/HTM页面,我这里用的是VS2005(C#),创建成功后,命名为:HTMLPage.HTM
再创建一个ASPX动态页面,命名为:AJAX.ASPX.这个页面的作用是处理传送过来的请求。
注:AJAX.ASPX的源中,要把所有的HTML标签删除,只留下一行必须的代码,处理后的界面如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AJAX.aspx.cs" Inherits="AJAX" %>
好,第一步就这样完成了.现在我们回到HTMLPage.HTM页面中.
对HTM页面的操作如下:
1.在BODY区内创建一个按钮,id为botton,显示的名称为:"演示",
然后,再创建一个id为show的DIV,作为接收后台服务器的消息回传处理区.代码如下:
<body>
<input type="button" id="button" value="演示" />
<div id="show" style="width:300px; height:200px; border-style:solid; border-width:1px; border-color:BlueViolet;"></div>
</body>
2.在<HEAD>内,写入对应的JS,注意.这里我的解释比较详细,自己看JS代码,应该不难.代码如下:
<script type="text/javascript" language="javascript">
function getXML (fragment_url,divid,errorMessage,loadingMessage)
{
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp= new XMLHttpRequest(); //FF
} else if (window.ActiveXObject) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");//IE
}
//有两种方式:get POST
//fragment_url 表示URL.,记住:由于是JavaScript代码,所有的浏览器都不允许访问域外,也就是只能够访问本站内的后台.这是处于安全问题考虑
//false表示异步,true表示同步
xmlhttp.open("GET", fragment_url,false);
xmlhttp.onreadystatechange = function(){
//判断连接成功,成功获取到数据
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
//alert(xmlhttp.responseXML.documentElement);
//这里的xmlhttp.responseText就是获取到的数据,当然,还有responseBody之类
DoOk(xmlhttp.responseText,divid);
}else{
//表示连接失败
DoNo(errorMessage,divid);
}
}
xmlhttp.send();
}
function Doing (msg,divid)
{//数据处理中的信息.当然,这里你也可以对当前容器添加一个你所谓的圆圈图片 ^_^
document.getElementById(""+divid+"").innerHTML=msg;
}
function DoOk (msg,divid)
{//对返回数据的操作:将数据填充到指定容器
//当然,你这里也可以提供其他操作
document.getElementById(""+divid+"").innerHTML=msg;
}
function DoNo (msg,divid)
{//返回异常的处理
document.getElementById(""+divid+"").innerHTML=msg;
}
function theclick()
{
//加载数据ing...
Doing("稍等哈,数据正在加载中...","show");
alert("由于服务器处于本机上,所以在这里做一个提示来隔开,要不然,时间会很短暂,您根本不可能看到数据的显示!");
getXML('AJAX.ASPX','show','错误啦!!!!!','稍等哈,数据正在加载中....');
}
</script>
注意:上面的theclick()中,我们用到了
getXML('AJAX.ASPX','show','错误啦!!!!!','稍等哈,数据正在加载中....');
所以ajax.aspx页面一定要与本HTM页面处于同一目录.如果是上一目录,就可以这样
getXML('../AJAX.ASPX','show','错误啦!!!!!','稍等哈,数据正在加载中....');
明白吧?
好啦,现在回到AJAX.ASPX.CS页中,在对应的Page_Load事件中写入返回的值.我随便的写了些东西.相关代码如下:
protected void Page_Load(object sender, EventArgs e)
{
//为了演示会显示,所以我们让线程等待一段时间后显示,方便前台演示
//不过如果是上传到服务器后,不要这个东西哟.要不然,就麻烦了^_^
System.Threading.Thread.Sleep(3000);//等待3秒,便于前台看效果
//注意,这里就可以根据前台传递过来的东西:Request.QueryString[""]进行判断返回值.当然,我这里没有,哈哈
Response.Write("当前数据显示成功~```````HOHO~~~!
我也来一个:
Hello,Word!");
}
此时来运行HTMLPage.HTM,就OK啦,明白了吗?
再创建一个ASPX动态页面,命名为:AJAX.ASPX.这个页面的作用是处理传送过来的请求。
注:AJAX.ASPX的源中,要把所有的HTML标签删除,只留下一行必须的代码,处理后的界面如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AJAX.aspx.cs" Inherits="AJAX" %>
好,第一步就这样完成了.现在我们回到HTMLPage.HTM页面中.
对HTM页面的操作如下:
1.在BODY区内创建一个按钮,id为botton,显示的名称为:"演示",
然后,再创建一个id为show的DIV,作为接收后台服务器的消息回传处理区.代码如下:
<body>
<input type="button" id="button" value="演示" />
<div id="show" style="width:300px; height:200px; border-style:solid; border-width:1px; border-color:BlueViolet;"></div>
</body>
2.在<HEAD>内,写入对应的JS,注意.这里我的解释比较详细,自己看JS代码,应该不难.代码如下:
<script type="text/javascript" language="javascript">
{
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp= new XMLHttpRequest(); //FF
} else if (window.ActiveXObject) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");//IE
}
//有两种方式:get POST
//fragment_url 表示URL.,记住:由于是JavaScript代码,所有的浏览器都不允许访问域外,也就是只能够访问本站内的后台.这是处于安全问题考虑
//false表示异步,true表示同步
xmlhttp.open("GET", fragment_url,false);
xmlhttp.onreadystatechange = function(){
//判断连接成功,成功获取到数据
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
//alert(xmlhttp.responseXML.documentElement);
//这里的xmlhttp.responseText就是获取到的数据,当然,还有responseBody之类
DoOk(xmlhttp.responseText,divid);
}else{
//表示连接失败
DoNo(errorMessage,divid);
}
}
xmlhttp.send();
}
{//数据处理中的信息.当然,这里你也可以对当前容器添加一个你所谓的圆圈图片 ^_^
document.getElementById(""+divid+"").innerHTML=msg;
}
{//对返回数据的操作:将数据填充到指定容器
//当然,你这里也可以提供其他操作
document.getElementById(""+divid+"").innerHTML=msg;
}
{//返回异常的处理
document.getElementById(""+divid+"").innerHTML=msg;
}
{
//加载数据ing...
Doing("稍等哈,数据正在加载中...","show");
alert("由于服务器处于本机上,所以在这里做一个提示来隔开,要不然,时间会很短暂,您根本不可能看到数据的显示!");
getXML('AJAX.ASPX','show','错误啦!!!!!','稍等哈,数据正在加载中....');
}
</script>
注意:上面的theclick()中,我们用到了
getXML('AJAX.ASPX','show','错误啦!!!!!','稍等哈,数据正在加载中....');
所以ajax.aspx页面一定要与本HTM页面处于同一目录.如果是上一目录,就可以这样
getXML('../AJAX.ASPX','show','错误啦!!!!!','稍等哈,数据正在加载中....');
明白吧?
好啦,现在回到AJAX.ASPX.CS页中,在对应的Page_Load事件中写入返回的值.我随便的写了些东西.相关代码如下:
protected void Page_Load(object sender, EventArgs e)
{
//为了演示会显示,所以我们让线程等待一段时间后显示,方便前台演示
//不过如果是上传到服务器后,不要这个东西哟.要不然,就麻烦了^_^
System.Threading.Thread.Sleep(3000);//等待3秒,便于前台看效果
//注意,这里就可以根据前台传递过来的东西:Request.QueryString[""]进行判断返回值.当然,我这里没有,哈哈
Response.Write("当前数据显示成功~```````HOHO~~~!
我也来一个:
Hello,Word!");
}
此时来运行HTMLPage.HTM,就OK啦,明白了吗?
0 0
- JS中xmlhttp异步传送的应用
- XMLHTTP异步的例子
- Microsoft.XMLHTTP的应用
- xmlhttp的应用一法
- MSXML. xmlhttp 的应用参考
- MSXML. xmlhttp 的应用参考
- MSXML. xmlhttp 的应用参考
- Ajax应用xmlhttp的例子
- XMLHTTP应用的一个实例
- XmlHttp异步获取网站数据的例子
- XmlHttp异步获取网站数据的例子
- XmlHttp异步获取网站数据的例子
- XmlHttp异步获取网站数据的例子
- XMLHTTP实现数据的异步调用
- XmlHttp异步获取网站数据的例子
- XmlHttp异步获取网站数据的例子
- XmlHttp异步获取网站数据的例子
- XmlHttp异步获取网站数据的例子
- 【003】Objective-C中@property()
- FancyCoverFlow
- java、js相等的相同和区别,js的return
- poj 1128 Frame Stacking(拓扑字典序)
- nvcc启动与配置说明
- JS中xmlhttp异步传送的应用
- ZendStudio 高亮显示相同变量
- 浅谈HTTP中的GET与POST
- Building and Running Modules
- phpmyadmin配置多IP登录
- 背包九讲
- HDU 3709 Balanced Number
- poj 3468(简单线段树区间更新)
- Archlinux YouCompleteMe+syntastic vim自动补全插件,显示缩进和状态栏美化,爽心悦目的vim