Ajax基础原理例子PART.I (附部分参考资料)

本文介绍了一种利用Ajax技术实现在网页上无刷新显示服务器当前时间的方法。通过创建Ajax请求,定时向服务器请求时间数据并更新页面内容,演示了基本的Ajax交互流程。

今天向企业I班同学讲了ajax的原理,并做了一个简单的例子,用于实现一个页面无刷新动态显示当前服务器的时间:

可以看看放在网上的具体例子,访问地址为http://www.koonsoft.net/samples/ajax/now.html,该示例其实包含3个文件:

文件now.asp的代码如下(注:这个只是用于普通页面与AJAX的比较,不属于Ajax技术应用内容!):

<% = now %>

 

这是一个传统的asp文件,用于显示服务器的当前时间,如果不是点击刷新图标或者按下F5键,那么页面的内容永远不会刷新。

文件now_ajax.asp的代码如下:

ExpandedBlockStart.gif ContractedBlock.gif <%
    
' 我是用来从服务器生成XML数据的文件
%>
ExpandedBlockStart.gifContractedBlock.gif
<%
    Response.Write(
"<?xml version='1.0' encoding='UTF-8' ?>")
    Response.Write(
"<Z>")
    Response.Write(
"<hosttime>")
    Response.Write(
now)
    Response.Write(
"</hosttime>")
    Response.Write(
"</Z>")
%>

 

这个文件是用来生成并返回一个xml格式的数据文件,其中有一个节点为hosttime,它的值带代表当前服务器的时间。

最后主要用来呈现的now.html文件内容如下

 

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html  xmlns ="http://www.w3.org/1999/xhtml" >
 
< head >
  
< title > Ajax显示当前服务器时间 </ title >
  
< meta  name ="generator"  content ="editplus"   />
  
< meta  name ="author"  content =""   />
  
< meta  name ="keywords"  content =""   />
  
< meta  name ="description"  content =""   />
ExpandedBlockStart.gifContractedBlock.gif    
< script  type ="text/javascript" >
    
var xmlHttp;

    
// 判断浏览器类型,进而生成合适浏览器的xmlhttprequest对象
ExpandedSubBlockStart.gifContractedSubBlock.gif
    function createXMLHttpRequest()    {
ExpandedSubBlockStart.gifContractedSubBlock.gif        
if (window.ActiveXObject) {
            
// 如果是IE浏览器
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }

ExpandedSubBlockStart.gifContractedSubBlock.gif        
else if (window.XMLHttpRequest) {
            
// 如果是非IE浏览器
            xmlHttp = new XMLHttpRequest();
        }
        
    }


ExpandedSubBlockStart.gifContractedSubBlock.gif    
/**//*
    // 获取服务器的时间
    function getHostTime() 
    {    
        createXMLHttpRequest();        
        
        //xmlHttp.open("GET", "http://localhost/ajax/now_ajax.asp?timespan=" + new Date().getTime(),true);
        xmlHttp.open("GET", "http://localhost/ajax/now_ajax.asp?time=" + new Date().getTime(),true);                
        xmlHttp.onreadystatechange = callback;
        xmlHttp.send(null);

    }
    
*/


    
// 当访问url的时候发生的回调
ExpandedSubBlockStart.gifContractedSubBlock.gif
    function callback() {
ExpandedSubBlockStart.gifContractedSubBlock.gif        
if (xmlHttp.readyState == 4{
ExpandedSubBlockStart.gifContractedSubBlock.gif            
if (xmlHttp.status == 200{
                setTimeout(
"pollServer()"2000);
                refreshTime();
            }

            
else
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                alert(
"您访问的URL不存在!请检查网络.");
            }

        }

    }


ExpandedSubBlockStart.gifContractedSubBlock.gif    
function pollServer() {
        createXMLHttpRequest();
        
var url = "http://localhost/ajax/now_ajax.asp?time=" + new Date().getTime();
        xmlHttp.open(
"GET", url, true);
        xmlHttp.onreadystatechange 
= callback;
        xmlHttp.send(
null);
    }


    
function refreshTime()
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        document.getElementById(
"results").innerHTML = xmlHttp.responseText;
    }

     
</ script >
 
</ head >  
 
< body >
    
< span  id ="results" > 我是用来显示数据的html </ span >
    
< input  type ="button"  value ='进行httpRequest'  onclick ="pollServer()" ></ input >
 
</ body >
 
</ html >

 

具体的例子请见示例页面。交给大家的练习就是课堂上所说的内容,如果不事先自己动手查阅资料,肯定无法完成我布置的练习,希望大家有问题跟贴留言。

参考资料包括以下内容:

转载于:https://www.cnblogs.com/koon/archive/2008/09/20/1294972.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值