两强相争,鹿死谁手 — JQuery中的Ajax与AngularJS中的$http

一、JQuery与AngularJS

首先,先简单的比较一下JQuery与AngularJS。

二、Ajax请求与数据遍历打印

这里是Ajax和$http请求的JSON文件概览,默认的路径我们就放在与两者同级的文件夹里。

[
    {
        "name": "一号",
        "age": 17,
        "hobby": [
            "吃",
            "喝"
        ],
        "score":{
            "math":78,
            "chinese":89
        }
    },
    {
        "name": "二号",
        "age": 17,
        "hobby": [
            "喝",
            "玩"
        ],
        "score":{
            "math":78,
            "chinese":89
        }
    },
    {
        "name": "三号",
        "age": 17,
        "hobby": [
            "玩",
            "乐"
        ],
        "score":{
            "math":78,
            "chinese":89
        }
    },
    {
        "name": "四号",
        "age": 17,
        "hobby": [
            "吃",
            "喝",
            "玩",
            "乐"
        ],
        "score":{
            "math":78,
            "chinese":89
        }
    }
]

下面是Ajax请求获取JSON文件的代码。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Ajax</title>

        <script language="JavaScript" src="js/jquery-1.10.2.js"></script>

        <script type="text/javascript">

            $(function(){

                $("button").click(function(){

                    $.ajax({
                        type:"post",
                        url:"http://localhost:8080/JSON/h51701.json",
                        dataType:"JSON",
                        success:function(data){
                            console.log(data)
                        }
                    });

            })

        </script>

    </head>
    <body>

        <button>点击请求JSON文件</button>

        <div></div>

    </body>
</html>

如果想要直接遍历取出JSON文件中的各种值,则可以通过post和get,一般我们所用的是post,使用时,只需要吧$ajax这一部分换成以下代码。

$.post("http://localhost:8080/JSON/h51701.json",{},function(data){

                        for(var i = 0 ; i < data.length ; i++){
                            $("div").append("姓名:"+data[i].name+"<br />");
                            $("div").append("年龄:"+data[i].age+"<br />");
                            $("div").append("数学成绩:"+data[i].score.math+"<br />");
                            $("div").append("语文成绩:"+data[i].score.chinese+"<br />");
                            $("div").append("爱好:"+data[i].hobby.toString()+"<br /><br />");
                        }

                        },"json")

在这里,我们一般是采用循环遍历的方法一一取出。

三、$http请求与数据的提取

相较而言,$http的方法更简单粗暴,代码如下。

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>$http</title>
    </head>

    <body ng-app="app" ng-controller="ctrl">

        <pre>{{data}}</pre>

        <table>
            <thead>
                <tr>
                    <th>姓名</th>
                    <th>年龄</th>
                    <th>喜好</th>
                    <th>数学成绩</th>
                    <th>语文成绩</th>
                    <th>总分</th>
                </tr>
            </thead>
            <tr ng-repeat="item in data | orderBy:‘score.chinese‘">
                <td ng-bind="item.name"></td>
                <td ng-bind="item.age"></td>
                <td ng-bind="item.hobby"></td>
                <td ng-bind="item.score.chinese"></td>
                <td ng-bind="item.score.math"></td>
                <td ng-bind="item.score.chinese + item.score.math"></td>
            </tr>
        </table>

    </body>

    <script src="libs/angular.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">
        angular.module("app", [])
        .controller("ctrl", function($scope,$http) {
            //方法一
            $http({
                method: ‘POST‘,
                url: ‘h51701.json‘
            }).then(function successCallback(response) {
                    // 请求成功执行代码
                    $scope.res = response;
                }, function errorCallback(response) {
                    // 请求失败执行代码
                    alert("服务请求失败")
            });
            //方法二
            $http.get("h51701.json").then(function successFunction(a){
                $scope.res = a;
            })
            //方法三
            $http.post("h51701.json",{/*传递的参数对象*/}).then(function successFunction(a){
                $scope.data = a.data;//从返回的信息中取出需要的数据,为JSON对象(数组)
            })

        })

    </script>

</html>

在请求方面,三种方法大致与ajax相同,但是在每一数据的提取方面,AngularJS所提供的ng-repeat提供了非常大的便利。

综上,两者相比较,还是AngularJS提取更方便。但是从现如今的更新上讲,JQuery中的ajax更加稳定。

时间: 2024-10-29 04:57:11

两强相争,鹿死谁手 — JQuery中的Ajax与AngularJS中的$http的相关文章

从jquery里的$.ajax()到angularjs的$http

jquery中对ajax的使用做了很多封装,使得我们使用习惯了,反而并不大清楚在请求过程中的一些细节. 在第一次使用angularjs的$http时,后台一直接受不到前端请求的数据,于是小小研究了一下. 用我自己这边的项目为例,后台服务这边接受请求的方式是通过HttpContext.Request.Params来,原来用jquery中的Ajax请求一直正常,一换到原始的$http,瞬间奔溃啦.... 如果使用最原始的$http,会发现谷歌中network的请求数据格式是: 而以前使用正常的访问下

AngularJS学习--- AngularJS中XHR(AJAX)和依赖注入(DI) step5

前言:本文接前一篇文章,主要介绍什么是XHR,AJAX,DI,angularjs中如何使用XHR和DI. 1.切换工具目录 git checkout -f step-5 #切换分支 npm start #启动项目 2.什么是XHR和依赖注入(Dependency Injection)? 1)什么是XHR? XHR是XMLHttpRequest的简称,XMLHttpRequest 用于在后台与服务器交换数据,主要是为了实现在不重新加载整个网页的情况下,对网页的某部分进行更新.简单说,浏览器中URL

AngularJS 中 Provider 的用法及区别

在一个分层良好的 Angular 应用中,Controller 这一层应该很薄.也就是说,应用里大部分的业务逻辑和持久化数据都应该放在 Service 里. 为此,理解 AngularJS 中的几个 Provider 之间的区别很有必要. Provider 创建的新服务都可以用来注入.包括: provider factory service constant value 另外,内建的服务 $controller 和 $filter 也可以被注入,同时也可以使用这些服务来获得新的过滤器和控制器.

转: 理解AngularJS中的依赖注入

理解AngularJS中的依赖注入 AngularJS中的依赖注入非常的有用,它同时也是我们能够轻松对组件进行测试的关键所在.在本文中我们将会解释AngularJS依赖注入系统是如何运行的. Provider服务($provide) $provide服务负责告诉Angular如何创造一个新的可注入的东西:即服务(service).服务会被叫做provider的东西来定 义,你可以使用$provide来创建一个provider.你需要使用$provide中的provider方法来定义一个provi

jQuery框架+DWR框架实现的Java Web中的Ajax效果(异步请求,局部刷新)

一 简介和实现效果 这里用一个小例子来简单举例说明,做一个搜索引擎搜索提示效果,通过不断输入字符,然后在下方给出搜索提示.效果图如下: 通过上图可以看到,当输入一个"a"时,提示了很多内容,然后继续输入一个"e"后,提示的范围明显就变小了. 注:在文末我会给出完整源代码的下载链接,以供大家参考 二 具体实现 1 在eclipse for java ee中创建一个Java Web工程,然后导入相应的jar包,特别说明的是:这里要导入一个额外的dwr.jar.也就是说,

jQuery中对AJAX操作的封装函数

jQuery提供了6个简化AJAX操作的函数,每个都可以代替元素AJAX中的四步代码! (1)$('xxx').load()         jQuery对象函数 (2)$.get()                   jQuery全局函数 (3)$.post()                 jQuery全局函数 (4)$.getScript()          jQuery全局函数 (5)$.getJSON()           jQuery全局函数 (6)$.ajax()     

深入理解ajax系列第九篇——jQuery中的ajax

前面的话 jQuery提供了一些日常开发中需要的快捷操作,例如load.ajax.get和post等,使用jQuery开发ajax将变得极其简单.这样开发人员就可以将程序开发集中在业务和用户体验上,而不需要理会那么繁琐的XMLHTTPRequest对象.jQuery对ajax操作进行了封装,在jQuery中$.ajax()属性最底层的方法,第2层是load().$.get()和$.post()方法,第3层是$.getScript()和$.getJSON()方法.下面将详细介绍jQuery中的aj

JQuery中的Ajax(六)

一:Ajax请求jQuery.ajax(options) load(url,[data],[callback])jQuery.get(url,[data],[callback]) jQuery.getJSON(url,[data],[callback]) jQuery.getScript(url,[callback]) jQuery.post(url,[data],[callback]) 1.jQuery.ajax(options)通过 HTTP 请求加载远程数据.jQuery 底层 AJAX

jQuery中的ajax用法案例

什么是 AJAX? AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML). 简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据,并在网页上进行显示. 使用 AJAX 的应用程序案例:谷歌地图.腾讯微博.优酷视频.人人网等等. 关于 jQuery 与 AJAX jQuery 提供多个与 AJAX 有关的方法. 通过 jQuery AJAX 方法,您能够使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本