轻松学习Ajax

52 阅读3分钟

了解一些基础网络常识

协议

协议是一种网络约定/规则

http:// 超文本传输协议

https:// 安全的超文本传输协议

file:/// 文件传输协议

IP(域名)

IP是互联网中服务器的地址。(存放资源的地方) 例如:

www.baidu.com

183.232.231.172

image.png

端口

端口是设备与外界通信的出口,通常取值范围:0到65535

5500 vscode插件开启的http服务

80 默认端口(http)

443 默认端口(https)

3306 mysql 服务的端口

网页地址

可以直接渲染图文信息

www.baidu.com/

www.taobao.com/

数据地址 (API)

url: http://localhost:3000/api/userInfo

{"status":403,"msg":"登录已过期,请重新登录"}

本地IP(自己电脑的)

127.0.0.1

局域IP(室内网络)

192.168.137.1

外网IP(一般需要花钱租)

183.232.231.172 数据的前后端交互

是指前端负责编写界面、请求数据、渲染数据(拿到数据并把数据表现出来)

后台负责处理数据、编写接口、响应数据(处理各种请求并响应数据)

image.png

静态网页

不存在任何后台的数据请求的网页。图文信息是固定的、不能更新的(不能因为页面放了gif图或者轮播图就说这个是动态网页,不存在数据交互的网页都是静态网页)

动态网页

页面上的数据是可以更新的,可以从后台请求数据、存在数据的前后端交互(注册、登录)

ajax

是什么

ajax是一项创建动态网页的技术。是一门实现数据前后端交互的技术。 Asynchronous Javascript And XML(异步JavaScript和XML)

为什么使用ajax 这项技术

  1. ajax可以快速创建动态网页

  2. ajax可以读取文档内容

  3. ajax可以实现数据的前后端交互

  4. ajax可以实现不跳转刷新页面(局部刷新页面),异步请求。

怎么实现数据的前后端交互

  1. 利用jquery提供的$.ajax(选项)
  2. 利用网络请求库 axios
  3. 利用H5新增的fetch API

示例:天气查询 首先编写页面 image.png

image.png

image.png

再检查数据接口,是否正常访问 image.png 最后,把获取的数据渲染在页面上 核心代码:

<script src="../jquery/jquery.js"></script>
<script>
    // 需求:
    // 点击"查询"按钮,获取输入的城市,
    // 调用ajax函数,把城市的天气信息获取,并渲染在页面上

    // 涉及到数据前后端交互时
    // 首先思考的是接口的详细信息(地址,方式,参数,返回结果)
    // 然后填写ajax函数的相关选项
    // 例如:
    // url   接口地址
    // type  请求方法
    // data  提交的参数
    // success 请求和响应成功执行的回调函数 sucess:function(返回结果){}
    // error  请求失败执行的回调函数

    // 天气查询的接口信息
    // 1、接口地址:https://yiketianqi.com/free/day
    // 2、请求方式:GET
    // 3、参数: 必选参数  appid  appsecret  
    //  可选参数  unescape  city
    // 4、返回结果:json格式数据

    // 编码:
    // 获取元素绑定事件
    $(".btn").on("click", function () {
        // 获取输入框的值
        var city = $(".inp").val();
        // 判断输入框是否有值
        if (city.length == 0) {
            console.log("输入框为空,显示当前所在城市的天气信息")
        }
        // 请求天气查询接口地址
        $.ajax({
            url: "https://yiketianqi.com/free/day",// 接口地址
            type: "get",//请求的方式(由文档来告知开发者)
            data: { // 该不该填写参数,填写哪些参数(需要阅读接口文档,因为是后台写的接口)
                // 填写你们自己的ID和秘钥
                appid: "76991983",
                appsecret: "cRC3NNlQ",
                unescape: 1,
                city: city
            },
            // 发起请求之前
            beforeSend: function () {
                // 显示正在加载
                $(".loading-box").show();
                // 清空信息
                $(".info").empty();
            },
            success: function (res) {//请求完成和响应成功
                // console.log(res);//后台响应的结果(响应报文)
                // 判断res是否有值
                if (res) {
                    // 定义字符串
                    var str = `
                        <div class="item">当前城市: ${res.city}</div>
                        <div class="item">更新时间: ${res.update_time}</div>
                        <div class="item"><img src="./assets/${res.wea_img}.png" alt=""></div>
                        <div class="item">温度:${res.tem}</div>
                        <div class="item">天气:${res.wea}</div>
                        <div class="item">风力:${res.win}</div>
                        <div class="item">空气质量: ${res.air}</div>
                        `;
                    // 隐藏正在加载
                    $(".loading-box").hide();
                    // 渲染字符串
                    $(".info").html(str);
                    // 重置输入框的值
                    $(".inp").val("");
                }

            },
            // 请求完成(万一请求失败了)
            complete: function () {
                // 隐藏正在加载
                $(".loading-box").hide();
            }
        })
    })

</script>

总结:

1、ajax可以创建动态网页

2、ajax可以无跳转刷新页面

3、ajax 可以提升用户体验(前后端数据交互效果更好)