原生Ajax 和Jq Ajax

Posted 走小天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生Ajax 和Jq Ajax相关的知识,希望对你有一定的参考价值。

 

  前言:这次介绍的是利用ajax与后台进行数据交换的小例子,所以demo必须通过服务器来打开。服务器环境非常好搭建,从网上下载wamp或xampp,一步步安装就ok,然后再把写好的页面放在服务器中指定的位置。打开时,在浏览器地址栏输入“localhost/指定页面”或者“127.0.0.1/指定页面”打开。

  下面列出demo的htmlphp、原生ajax 、jq ajax代码。

  HTML代码:

复制代码
<!doctype html>
<html>
<head>
    <title>ajax示例</title>
    <meta charset=\'utf-8\' />
    <link rel="stylesheet" type="text/css" href="css/common.css" />
    <style type="text/css">
        .main{height:400px;width:800px;margin:100px auto 0;border:1px solid #000;}
        .list{height:400px;width:200px;float:left;background:#ddd;}
        .inf{height:400px;width:600px;float:right;background:#ccc;text-align:center;}

        .list li{width:200px;text-align:center;margin:50px 0 0;font-size:24px;cursor: pointer;
        }
        .inf img{width:360px;height:270px;margin:15px auto;}
        .inf p{width:580px;text-align:left;text-indent:2em;font-size:14px;margin:0 10px;}
    </style>
</head>

<body>
    <div class=\'main\'>
        <div class=\'list\' id=\'list\'>
            <ul>
                <li name=\'spring\' id=\'spring\'>春</li>
                <li name=\'summer\' id=\'summer\'>夏</li>
                <li name=\'fall\' id=\'fall\'>秋</li>
                <li name=\'winter\' id=\'winter\'>冬</li>
            </ul>
        </div>
        <div class=\'inf\' id=\'inf\'>
        <!--要插入的内容-->
        </div>
    </div>
</body>
<script type="text/javascript" charset="utf-8" src="js/jQuery.js"></script>
</html>
复制代码

  PHP代码:

复制代码
<?php

$details = array (
    \'spring\'    =>    "<img src=\'images/spring.jpg\' alt=\'\' /><p>人间四月芳菲尽,山寺桃花始盛开</p>",
    \'summer\'    =>    "<img src=\'images/summer.jpg\' alt=\'\' /><p>水晶帘动微风起,满架蔷薇一院香</p>",
    \'fall\'    =>    "<img src=\'images/fall.jpg\' alt=\'\' /><p>金井梧桐秋叶黄,珠帘不卷夜来霜</p>",
    \'winter\'        =>    "<img src=\'images/winter.jpg\' alt=\'\' /><p>梅须逊雪三分白,雪却输梅一段香</p>"
);

echo $details[$_REQUEST[\'LiName\']];

?>
复制代码

  原生ajax:

复制代码
<script type="text/javascript">
    var lis = document.getElementById(\'list\').getElementsByTagName(\'li\');
    window.onload = initPage;
    function initPage() {
        for (var i=0; i<lis.length; i++) {
            txt = lis[i];
            txt.onclick = function () {
                getDetails(this.id);
            }
        }
    }
    function creatRequest() {
        try {
            request = new XMLHttpRequest();
        }
        catch (tryMS) {
            try {
                request = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (otherMS) {
                try {
                    request = new ActiveXObject("Miscrosoft.XMLHTTP");
                }
                catch (failed) {
                    request = null;
                }
            }
        }
        return request;
    }
    function getDetails(itemName) {
        request = creatRequest();
        if (request == null) {
            alert(\'没有成功创建请求\')
            return;
        }
        var url = "getDetails.php?LiName="+escape(itemName);
        request.open("GET",url,true);
        request.onreadystatechange = displayDetails;
        request.send(null);
    }
    
    function displayDetails() {
        if (request.readyState == 4) {
        if (request.status == 200) {
            detailDiv = document.getElementById("inf");
            detailDiv.innerHTML = request.responseText;
        }
      }
    }   
</script>
复制代码

  JQ ajax:

复制代码
<script type="text/javascript">
$(\'#list li\').click ( function () {                       
        $.ajax({                           
            type:\'GET\',                            
            data:\'\',                           
            url:"getDetails.php?LiName="+this.id,                           
            success:function(data){                                
                $(\'#inf\').html(data);                                
            },
            dataType:\'text\',
            error:function (){                
                alert("失败!");            
            }
        })                    
    });
</script>
复制代码

 来自:http://www.cnblogs.com/duanhuajian/archive/2012/10/20/2731840.html

以上是关于原生Ajax 和Jq Ajax的主要内容,如果未能解决你的问题,请参考以下文章

原生封装一个类似于JQ的ajax方法

面试时怎样回答:你对原生ajax的理解

原生Ajax XMLHttpRequest对象

面经jq 中 ajax 和 axios 区别,瀑布流布局,添加删除事件

AJAX-js原生封装

php结合ajax实现简单的无刷新评论