原生Ajax 和jQuery Ajax的区别示例分析


Posted in Javascript onDecember 17, 2014

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

下面列出demo的HTML、PHP、原生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>
Javascript 相关文章推荐
Javascript实例教程(19) 使用HoTMetal(5)
Dec 23 Javascript
基于jQuery的ajax功能实现web service的json转化
Aug 29 Javascript
jQuery插件实现适用于移动端的地址选择器
Feb 18 Javascript
基于JavaScript实现本地图片预览
Feb 08 Javascript
微信小程序 滚动到某个位置添加class效果实现代码
Apr 19 Javascript
Angular移动端页面input无法输入的解决方法
Nov 14 Javascript
JavaScript的Object.defineProperty详解
Jul 09 Javascript
基于vue-router 多级路由redirect 重定向的问题
Sep 03 Javascript
JS实现获取数组中最大值或最小值功能示例
Mar 02 Javascript
移动端自适应flexible.js的使用方法(不用三大框架,仅写一个单html页面使用)推荐
Apr 02 Javascript
react组件基本用法示例小结
Apr 27 Javascript
在Vuex中Mutations修改状态操作
Jul 24 Javascript
jQuery中;function($,undefined) 前面的分号的用处
Dec 17 #Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
Dec 17 #Javascript
javascript实现根据身份证号读取相关信息
Dec 17 #Javascript
node.js中的fs.appendFile方法使用说明
Dec 17 #Javascript
javascript操作数组详解
Dec 17 #Javascript
node.js中的fs.appendFileSync方法使用说明
Dec 17 #Javascript
javascript实现节点(div)名称编辑
Dec 17 #Javascript
You might like
PHP中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
PHP ignore_user_abort函数详细介绍和使用实例
2014/07/15 PHP
ThinkPHP 3.2 版本升级了哪些内容
2015/03/05 PHP
jQuery-Easyui 1.2 实现多层菜单效果的代码
2012/01/13 Javascript
JavaScript高级程序设计 读书笔记之九 本地对象Array
2012/02/27 Javascript
原始XMLHttpRequest方法详情回顾
2013/11/28 Javascript
关闭浏览器时提示onbeforeunload事件
2013/12/25 Javascript
jquery操作cookie插件分享
2014/01/14 Javascript
js 验证身份证信息有效性
2014/03/28 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
2014/05/02 Javascript
js中的事件捕捉模型与冒泡模型实例分析
2015/01/10 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
Bootstrap table分页问题汇总
2016/05/30 Javascript
js实现省份下拉菜单效果
2017/02/15 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
nodeJS微信分享
2017/12/20 NodeJs
vue slot 在子组件中显示父组件传递的模板
2018/03/02 Javascript
js实现各浏览器全屏代码实例
2018/07/03 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
js中async函数结合promise的小案例浅析
2019/04/14 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
VUE兄弟组件传值操作实例分析
2019/10/26 Javascript
小程序实现tab标签页
2020/11/16 Javascript
使用python实现strcmp函数功能示例
2014/03/25 Python
CentOS安装pillow报错的解决方法
2016/01/27 Python
python字典改变value值方法总结
2019/06/21 Python
python构造函数init实例方法解析
2020/01/19 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
2020/02/26 Python
英语文学专业学生的自我评价
2013/10/31 职场文书
公司成立感言
2014/01/11 职场文书
2014年企业员工工作总结
2014/12/09 职场文书
党委工作总结2015
2015/04/27 职场文书
vue中data里面的数据相互使用方式
2022/06/05 Vue.js
python数字图像处理:图像简单滤波
2022/06/28 Python