自顶向下Web开发-1 前端部分-4 Ajax

1 简介:

  • 概念:异步的JS与XML。
  • 作用:
    • 数据交换:给服务器发送请求,获取服务器响应的数据。
    • 异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术。

AJAX 并非编程语言。

AJAX 仅仅组合了:

  • 浏览器内建的 XMLHttpRequest 对象(从 web 服务器请求数据)
  • JavaScript 和 HTML DOM(显示或使用数据)

Ajax 是一个令人误导的名称。Ajax 应用程序可能使用 XML 来传输数据,但将数据作为纯文本或 JSON 文本传输也同样常见。

Ajax 允许通过与场景后面的 Web 服务器交换数据来异步更新网页。这意味着可以更新网页的部分,而不需要重新加载整个页面。

原生Ajax示例如下:

Function loadDoc()

function loadDoc() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
     document.getElementById("demo").innerHTML = this.responseText;
    }
  };
  xhttp.open("GET", "ajax_info.txt", true);
  xhttp.send();
} 

而原生方式繁琐且可能不兼容,所以现在学习封装的Axios;

2 Axios:

Axios对原生Ajax进行了封装,简化书写,快速开发。

1 引入

可以本地引入,也可以cdn引入

<script src="https://cdn.jsdelivr.net/npm/axios@1.1.2/dist/axios.min.js"></script>

2 使用Axios发送请求,并获取响应结果:

主要通过下面案例进行学习:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
 
    <!-- 外部链接引入vue -->
    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.js"></script>

    <!-- cdn引入axios -->
    <script src="https://cdn.jsdelivr.net/npm/axios@1.1.2/dist/axios.min.js"></script>
 
    <style>
        .scoretable {
            width: 50%;
            margin: 0 auto; /* 居中显示 */
            border: 1px solid black; /* 实线边框 */
            border-collapse: collapse; /* 合并边框 */
        }
    
        .scoretable td {
            border: 1px solid black; /* 对表格单元格添加实线边框 */
            text-align: center; /* 内容居中 */
        }
        .scoretable th {
            border: 1px solid black; /* 对表格单元格添加实线边框 */
            text-align: center; /* 内容居中 */
        }
    </style>
</head>
<body>
    <!-- 编写视图 -->
    <div id="app">
        <table class="scoretable">
            <tr>
                <th>编号</th><th>姓名</th><th>年龄</th><th>性别</th><th>分数</th><th>等级</th>
            </tr>
            <tr v-for="(student,index) in students">
                <td>{{index+1}}</td><td>{{student.name}}</td><td>{{student.age}}</td><td v-if="student.gender==1">男</td><td v-else-if="student.gender==2">女</td><td>{{student.score}}</td>
                <td v-show="student.score>=85">优秀</td><td v-show="student.score>=60&&student.score<85">合格</td><td v-show="student.score<60"><span style="color: red;">不合格</span></td>
            </tr>
        </table>
    </div>
</body>
 
<!-- 在JS中创建Vue对象,定义数据模型 -->
<script>
    new Vue({
        el:"#app",
        data:{
            //students数据模型定义为空数组,用于接收要用的数据(也是个数组)
            students:[]
        },
        mounted() {
            //发送异步请求,加载数据
            axios.get("http://www.cmd137blog.top/temp/testdata01.html").then(result=>{
                //result.data得到返回的JSON数据对象,JSON数据中的data才是要用的数据所以用result.data.data,并把它赋予students数据模型
                this.students=result.data.data
            })
        }
    })
</script>
 
</html>

注:实际上不能按照按预选运行,因为还不会搞后端服务器部分,但程序逻辑及参考价值没问题,后续会了再回来改吧…

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇