原生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 相关文章推荐
用jquery实现输入框获取焦点消失文字
Apr 27 Javascript
鼠标移动到图片名上,显示图片的简单实例
Jul 14 Javascript
JavaScript中constructor()方法的使用简介
Jun 05 Javascript
开启Javascript中apply、call、bind的用法之旅模式
Oct 28 Javascript
RequireJS多页面应用实例分析
Jun 29 Javascript
详解Js模板引擎(TrimPath)
Nov 22 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
Feb 20 Javascript
基于vuejs实现一个todolist项目
Apr 11 Javascript
利用vue.js把静态json绑定bootstrap的table方法
Aug 28 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
Sep 03 Javascript
手把手带你封装一个vue component第三方库
Feb 14 Javascript
使用vue判断当前环境是安卓还是IOS
Apr 12 Vue.js
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
回首过去10年中最搞笑的10部动漫,哪一部让你节操尽碎?
2020/03/03 日漫
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
2019/02/15 PHP
showModelessDialog()使用详解
2006/09/21 Javascript
JQuery Tips(4) 一些关于提高JQuery性能的Tips
2009/12/19 Javascript
常见的jQuery选择器汇总
2014/11/24 Javascript
扒一扒JavaScript 预解释
2015/01/28 Javascript
使用coffeescript编写node.js项目的方法汇总
2015/08/05 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
fastclick插件导致日期(input[type=&quot;date&quot;])控件无法被触发该如何解决
2015/11/09 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
Bootstrap模态框(Modal)实现过渡效果
2017/03/17 Javascript
jQuery实现对网页节点的增删改查功能示例
2017/09/18 jQuery
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
2018/07/30 Javascript
vue-router重定向和路由别名的使用讲解
2019/01/19 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
使用python将mdb数据库文件导入postgresql数据库示例
2014/02/17 Python
Python设计模式之代理模式实例
2014/04/26 Python
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
使用Django搭建网站实现商品分页功能
2020/05/22 Python
解决Keras 中加入lambda层无法正常载入模型问题
2020/06/16 Python
python计算auc的方法
2020/09/09 Python
如何用Python编写一个电子考勤系统
2021/02/08 Python
Under Armour安德玛德国官网:美国高端运动科技品牌
2019/03/09 全球购物
经验丰富大学生村干部自我鉴定
2014/01/22 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
警示教育活动总结
2014/05/05 职场文书
开工仪式策划方案
2014/05/23 职场文书
2014年新农村建设工作总结
2014/12/01 职场文书
教师个人事迹材料
2014/12/17 职场文书
win10下go mod配置方式
2021/04/25 Golang
Window server中安装Redis的超详细教程
2021/11/17 Redis
Flutter集成高德地图并添加自定义Maker的实践
2022/04/07 Java/Android
Vue OpenLayer测距功能的实现
2022/04/20 Vue.js