谁能提供一个简单的Ajax实例,通过js脚本代码实现的

JavaScript013

谁能提供一个简单的Ajax实例,通过js脚本代码实现的,第1张

<script language="javascript">

var XMLHttpRequestObject=false

if(window.XMLHttpRequest)

{

XMLHttpRequestObject=new XMLHttpRequest()

}

else if(window.ActiveXObject)

{

XMLHttpRequestObject=new ActiveXObject("Microsoft.XMLHTTP")

}

//以上代码是创建一个XMLHttpRequest对象

//下面是一个使用这个XMLHttpRequest对象的函数,这个函数获取服务器的一个文件内容并显示到网页

function getData(dataSource,divID)

{

if(XMLHttpRequestObject)

{

var obj=document.getElementById(divID)

XMLHttpRequestObject.open("GET",dataSource)

XMLHttpRequestObject.setRequestHeader('Content-Type','application/x-www-form-urlencoded')

XMLHttpRequestObject.onreadystatechange=function ()

{

if(XMLHttpRequestObject.readyState==4 &&XMLHttpRequestObject.status==200)

{

obj.innerHTML=XMLHttpRequestObject.responseText

}

}

XMLHttpRequestObject.send(NULL)

}

}

</script>

以下是<body>代码

<body>

<H1>This is an ajax demo</H1>

<form>

<input type="button" value="Fetch the message" onclick="getData('data.txt','dataDiv')"/>

</form>

<div id="dataDiv">

<p>The fetch message will appear here</p>

</div>

</body>

你需要在当前页面文件夹下建一个data.txt文件、点击那个按钮、然后txt里的东西会显示在dataDiv的内容里面

<script type="text/javascript">  

    //请求函数  

    function f1(){  

        console.log('start')  

        //1.创建AJAX对象  

        var ajax = new XMLHttpRequest()  

          

        //4.给AJAX设置事件(这里最多感知4[1-4]个状态)  

        ajax.onreadystatechange = function(){  

            //5.获取响应  

            //responseText      以字符串的形式接收服务器返回的信息  

            //console.log(ajax.readyState)  

            if(ajax.readyState == 4 && ajax.status == 200){  

                var msg = ajax.responseText  

                console.log(msg)  

                //alert(msg)  

                var divtag = document.getElementById('result')  

                divtag.innerHTML = msg  

            }  

        }  

          

        //2.创建http请求,并设置请求地址  

        var username = document.getElementsByTagName('input')[0].value  

        var email = document.getElementsByTagName('input')[1].value  

        username = encodeURIComponent(username)    //对输入的特殊符号(&,=等)进行编码  

        email = encodeURIComponent(email)  

        ajax.open('get','response.php?username='+username+'&email='+email)  

          

        //3.发送请求(get--null    post--数据)  

        ajax.send(null)  

    }  

      

</script>

一,最原始的方式来运用ajax var xmlHttpfunction createXMLHttpRequest() { if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")}else if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest()} } //定义了一个ajax的入口函数,供用view层用户调用 function show_type(type_id) { // alert(id)createXMLHttpRequest()var url = "../ajax/shop_type_status.php?id="+type_id+"&time="+Math.random()xmlHttp.open("GET", url, true)xmlHttp.onreadystatechange = function(){ show_back()} xmlHttp.send(null)} //回调函数,将从调用的php文件中取得的数据,反还给用户 function show_back() { if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { //document.getElementById('cat_id').value = iddocument.getElementById('type_status').innerHTML = xmlHttp.responseText} } } 个人分析:这种方法挺好的,简单灵活,但是有一点不好,就是冗余代码比较多,不利于后期维护。二,js端封装的ajaxrequest这个东西,对于习惯了用javascript的人来说,是一个不错的选择,它是装上面所说的那种方法简单的封装了一下,做了统一的调用。感觉不错,代码挺多的就不贴出来了,大家可以到google搜ajaxrequest。//ajaxrequest.js里面有一个这个方法这个方法是供view端调用的接口,接口可以有多个,根据情况自己加function ajax_action_fun(url,fun) { var ajax=new AJAXRequestajax.get( url, function(obj){alert(obj.responseText)fun()} )} //html里面调用这个接口 get_shop_son_list //是回调后执行的方法名 ajax_action_fun("../ajax/shop_ajax.php?type=1",get_shop_list)function get_shop_list(resValue){ //这里就是你要的操作 }个人分析:它弥补了第一种方法的不足,统一调用接口,可以设置回调函数,缺点如果有的话,不在ajaxrequest本身而在于javascript,举个例子吧javascript:如果我想调用ajax_action_fun这个方法我要在html里加个东西显示店jquery:用它可以尽量把js和html分开,这对于后期维护是很帮助的,会节省很多时间,例如,全站换html;$(".showshop").bind("click", {url: "../ajax/shop_ajax.php?type=1",function:get_shop_list}, ajax_action_fun)这样就可以不用在html里面写onclick事件了三,jquery的ajax1)$.ajax({ type: "POST", url: "test.php", //调用的php文件 data: "name=zhang", success: function(msg){ �0�2�0�2�0�2�0�2�0�2�0�2//回调函数 alert( "Data Saved: " + msg )�0�2�0�2�0�2 //这里是操作 } })2)//调用test.php文件,传个参数,data是返回的数据 $.post("test.php", { name: "zhang"}, function(data){ alert("Data Loaded: " + data)})现在我基本上用jquery了,哈哈。 转载请注明作者:海底苍鹰