ajax--从基础开始

来源:互联网 发布:淘宝优惠链接怎么弄的 编辑:程序博客网 时间:2024/05/12 13:19

  ajax的实现主要依靠浏览器内部的XMLHttpRequest对象,XMLHttpRequest对象在所有现代的浏览器中都被实现了,虽然它还没有被标准化,目前仅是W3C的一个Working Draft. 套用下W3C对它的描述:

The XMLHttpRequest specification defines an API that provides scripted client functionality for transferring data between a client and a server.

不过IE对于该对象的实现与其他浏览器有所不同,它把它实现为ActiveX对象。下面的createXMLHttp()方法和startRequest() 方法展示了如何在客户端脚本中发起Http请求。XMLHttpRequest对象有几个常用属性,分别是:

 

属性 描述
onreadystatechange 每个状态变化都会触发这个事件处理器
readyState 请求的状态 0 未初始化 1 正在加载 2 已经加载 3 交互中 4 完成
responseText 服务器返回的值
status HTTP响应代码 200 OK 404 Not Found 等

 

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Ajax From Beginning</title>
<script type="text/javascript">
 var jsdebug={
        print:function(content,elementID){
            var id;
            if(arguments.length==1){
                id='debug';
            } else
               id=elementID;
            var element=document.getElementById(id);
            if(element)
               element.innerHTML+=content;    
        }
    };

var xmlHttp;
function createXMLHttp(){
    if(window.ActiveXObject){
        xmlHttp=new ActivXObject("Microsoft.XMLHTTP");
    }else if(window.XMLHttpRequest){
        xmlHttp=new XMLHttpRequest();
    }
}

function startRequest() {
    createXMLHttp();
    xmlHttp.onreadystatechange = handleStateChange;
    xmlHttp.open("GET", "HandleParam.ashx?country=china", true);
    xmlHttp.send(null);
}

function handleStateChange() {
    if (xmlHttp.readyState == 4) {
        if (xmlHttp.status == 200) {
            jsdebug.print(xmlHttp.responseText);
        }
    }  
}                   
</script>
</head>
<body>
<form action='#'>
   <input type="button" value="click me" onclick="startRequest()" />
</form>
<div id="debug"></div>
</body>
</html>
 客户端发起请求的方式和访问普通网页的时候是类似的,只需要设置好正确的url就可以。将这个文件保存成ajax.htm并且设为起始页面。下面介绍服务器端代码,在VS中新建一个网站,添加一个Genric Handler,命名为HandleParam.ashx。 其响应代码为:public class HandleParam : IHttpHandler {
   
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        string s = context.Request.QueryString["country"];
        string response = "Unknown";
        if (s.ToLower() == "china")        
            response = "Beijing";        
        else if (s.ToLower() == "usa")
            response = "Washington";
        context.Response.Write(string.Format("Respnose From Server, the capital of {0} is {1}!",
            s,response));       
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }} 运行项目: 最后一行文字就是从服务器端获得的值。http://www.fengfly.com/html/CSS/wangyetexiao/
http://www.fengfly.com/html/shujuku/
雨 枫技 术教 程网 http://www.fengfly.com/html/CSS/wangyetexiao/ http://www.fengfly.com/html/CSS/wangyetexiao/ ..www.fengfly.com..


-

本文地址:http://www.fengfly.com/plus/view-172011-1.html
标签: Ajax  来源:www.cnblogs.com/yinzixin       作者:yinzixin 

上一篇:AJAX(XMLHttpRequest)进行跨域请求方法详解(三)
下一篇:Ajax杂谈
收藏到:           

原文来自:雨枫技术教程网 http://www.fengfly.com
原文网址:http://www.fengfly.com/plus/view-172011-1.html

 

原创粉丝点击