当前位置: 首页 > news >正文

《黑马前端ajax+node.js+webpack+git教程》(笔记)——ajax教程(axios教程)

黑马程序员前端AJAX入门到实战全套教程,包含学前端框架必会的(ajax+node.js+webpack+git),一套全覆盖

文章目录

    • 框架前置导学
    • AJAX-Day01-01.AJAX入门与axios使用
      • 什么是AJAX
      • 如何使用AJAX
      • 使用axios获取数据案例
        • axios语法
        • 尝试获取数据
        • 代码示例
    • AJAX-Day01-02.认识URL
      • 什么是url?(Uniform Resource Locator 统一资源定位符)
      • url组成
        • 协议
        • 域名
        • 资源路径
      • 代码示例
    • AJAX-Day01-03.查询参数
      • url查询参数
      • 代码示例
    • AJAX-Day01-04.案例_地区查询
      • 查询某个省某个城市所有地区
      • 代码示例
    • AJAX-Day01-05.常用请求方法和数据提交
      • 常用请求方法
      • 数据提交场景
      • get请求方法示例(axios配置)
      • 场景示例:注册账号——数据提交
      • 示例代码
    • AJAX-Day01-06.axios错误处理
      • 浏览器产生的错误信息&接口返回的错误信息
      • 示例代码
    • AJAX-Day01-07.HTTP协议_请求报文
      • 请求报文
      • 请求报文组成
    • AJAX-Day01-08.请求报文-错误排查
      • 错误排查
      • 这还能直接改属性把密码显示为明文的,厉害!
      • 利用浏览器元素选择来快速确定querySelector目标
    • AJAX-Day01-09.HTTP协议_响应报文
      • 响应报文
      • HTTP响应状态码
    • AJAX-Day01-10.接口文档
      • 定义
    • AJAX-Day01-11.案例_登录
      • 定义文档
      • 小技巧:浏览器直接复制属性路径可粘贴到代码中
    • AJAX-Day01-12.案例_登录_提示消息
      • 提示框显示由“show”类名控制
      • 提示框需求(成功或失败需显示不同文字和样式,需要自动隐藏(通过添加定时器))
      • 通过给控件class列表增加或删除“show”类名,控制控件的隐藏和显示
      • 通过封装提示框函数提高可复用性
    • AJAX-Day01-13.form-serialize使用
      • form-serialize插件(快速搜集表单元素的值)
      • form-serialize插件提取键名与表达元素name相同
      • hash参数(true解析为js对象,false解析为查询字符串)
      • empty参数(为true是允许空值,false不获取空值(键都没了))
      • 代码示例
    • AJAX-Day01-14.案例_登录_整合form-serialize插件
    • AJAX-Day02-01.案例_图书管理_介绍_V1.2
    • AJAX-Day02-02.Bootstrap弹框使用_属性控制显示和隐藏_V1.6(弹框modal)
      • Bootstrap弹框
        • bootstrap的modal弹框:添加modal类名(默认隐藏)
      • 代码示例
    • AJAX-Day02-03.Bootstrap弹框使用_JS控制显示和隐藏_V1.4
      • bootstrap弹框(如果不需要在显示隐藏弹框时做操作,比如获取表达属性值,可以通过属性控制弹框显示或隐藏;否则可以通过JS控制弹框显示或隐藏)
    • AJAX-Day02-04.案例_图书管理_渲染列表_V1.4
    • AJAX-Day02-05.案例_图书管理_新增图书_V1.4
    • AJAX-Day02-06.案例_图书管理_删除图书_V1.1
    • AJAX-Day02-07.案例_图书管理_编辑图书_弹框准备_V1.2
    • AJAX-Day02-08.案例_图书管理_编辑图书_数据回显_V1.1
    • AJAX-Day02-09.案例_图书管理_编辑图书_保存修改_V1.1
    • AJAX-Day02-10.案例_图书管理_总结_V1.0
    • AJAX-Day02-11.图片上传_V1.1
      • 图片上传
      • change事件
    • AJAX-Day02-12.案例_网站-更换背景_V1.1
    • AJAX-Day02-13.案例_个人信息设置_介绍
    • AJAX-Day02-14.案例_个人信息设置_信息渲染
    • AJAX-Day02-15.案例_个人信息设置_头像修改
    • AJAX-Day02-16.案例_个人信息设置_信息修改
    • AJAX-Day02-17.案例_个人信息设置_提示框
    • AJAX-Day03-01.XMLHttpRequest_基本使用
      • XMLHttpRequest原理(axios 内部采用 XMLHttpRequest与服务器交互)
      • 使用XMLHttpRequest
      • XMLHttpRequest请求示例
      • 总结
    • AJAX-Day03-02.XMLHttpRequest_查询参数
      • 定义
      • 示例
    • AJAX-Day03-03.案例_地区查询
    • AJAX-Day03-04.XMLHttpRequest_数据提交
      • 请求头Content-Type设置为application/json
    • AJAX-Day03-05.认识_Promise
      • 定义与语法
      • 语法
      • 总结
    • AJAX-Day03-06.认识_Promise的三种状态
      • 三种状态
      • promise对象刚创建是pending状态(待定)
      • 成功执行将变成fulfilled状态(已兑现)
      • 执行失败将变成rejected状态(已拒绝)
    • AJAX-Day03-07.使用Promise和XHR获取省份列表
      • 需求
      • 实现细节
    • AJAX-Day03-08.封装_简易axios_获取省份列表(用xhs模拟实现axios)
      • 需求
      • 实现
    • AJAX-Day03-09.封装_简易axios_获取地区列表(支持查询参数传递)
      • 思路(使用URLSearchParams对象将config.json中的param转换成url查询字符串)
      • 代码示例
    • AJAX-Day03-10.封装_简易axios_携带请求体数据(data)
      • 原理
      • 代码(注意JSON.stringify和setRequestHeader)
    • AJAX-Day03-11.案例_天气预报_获取默认数据
    • AJAX-Day03-12.案例_天气预报_展示默认数据
    • AJAX-Day03-13.案例_天气预报_搜索城市列表
    • AJAX-Day03-14.案例_天气预报_展示城市天气
    • AJAX-Day04-01.同步代码和异步代码
      • 定义
    • AJAX-Day04-02.回调函数地狱
      • 定义
      • 演示
      • 总结
    • AJAX-Day04-03.Promise_链式调用
      • 概念
      • 示例
    • AJAX-Day04-04.Promise_链式调用_解决回调地狱
      • [参考文章:JS Promise链式调用介绍(处理多个异步操作)(Promise对象).then()、.catch()、Promise.all并行处理、Promise.race竞态模式](https://dontla.blog.csdn.net/article/details/147251656)
    • AJAX-Day04-05.async函数和await_解决回调函数地狱
      • 定义
    • AJAX-Day04-06.async函数和await_错误捕获
      • try...catch
    • AJAX-Day04-07.事件循环EventLoop
      • 认识-事件循环(EventLoop)
      • 定义
      • 总结
    • AJAX-Day04-08.事件循环_练习
      • 练习
    • AJAX-Day04-09.微任务与宏任务
      • 概念
      • 执行顺序
      • 总结
    • AJAX-Day04-10.事件循环经典面试题
      • 测试题
      • 确实有点复杂,需要明确哪些会被推到宏任务队列,那些会被推到微任务队列,然后根据“先清空微任务队列,再执行宏任务队列”的原则执行
    • AJAX-Day04-11.Promise.all静态方法
      • 定义:合并多个 Promise 对象,等待所有同时成功完成(或某一个失败),做后续逻辑
      • 语法
      • 代码案例
    • AJAX-Day04-12.案例_商品分类
    • AJAX-Day04-13.案例_学习反馈_省份菜单
    • AJAX-Day04-14.案例_学习反馈_城市菜单
    • AJAX-Day04-15.案例_学习反馈_地区菜单
    • AJAX-Day04-16.案例_学习反馈_提交数据
    • 项目-01.项目介绍
      • 链接
    • 项目-02.项目准备
      • 使用技术
        • 1. 基于 Bootstrap 搭建网站标签和样式
        • 2. 集成 wangEditor 插件实现富文本编辑器
        • 3. 使用原生 JS 完成增删改查等业务
        • 4. 基于 axios 与黑马头条线上接口交互
        • 5. 使用 axios 拦截器进行权限判断
      • 项目准备
      • 项目目录管理
    • 项目-03.验证码登录
      • 目标以及基地址的设置(方便维护)
    • 项目-04.验证码登录流程
      • 代码介绍
      • 验证码登录流程
    • 项目-05.token的介绍和权限访问控制
      • token介绍
      • token的使用
      • 总结
    • 项目-06.个人信息设置和axios请求拦截器(发起请求之前,触发的配置函数,对请求参数进行额外配置)
      • 在请求拦截器统一设置公共headers选项(统一设置请求头)
      • 代码示例
      • 总结
    • 项目-07.axios响应拦截器和身份验证失败
      • 定义
      • 示例:拦截器中判断状态码token失效然后清空本地存储并跳转到登录页面
      • 总结
    • 项目-08.优化axios响应结果(封装时嵌套了多层data,有点重复,解析时去掉一层data)
      • 定义
      • 代码示例
    • 项目-09.发布文章-富文本编辑器
    • 项目-10.发布文章-频道列表
    • 项目-11.发布文章-封面设置
    • 项目-12.发布文章-收集并保存
    • 项目-13.内容管理-文章列表展示
    • 项目-14.内容管理-筛选功能
    • 项目-15.内容管理-分页功能
    • 项目-16.内容管理-删除功能
    • 项目-17.内容管理-删除最后一条
    • 项目-18.内容管理-编辑文章-回显
    • 项目-19.内容管理-编辑文章-保存
    • 项目-20.退出登录

框架前置导学

在这里插入图片描述

AJAX-Day01-01.AJAX入门与axios使用

什么是AJAX

在这里插入图片描述

如何使用AJAX

在这里插入图片描述

使用axios获取数据案例

axios语法

在这里插入图片描述

尝试获取数据

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

http://hmajax.itheima.net/api/province

在这里插入图片描述

代码示例
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>01.AJAX概念和axios使用</title>
</head><body><p class="my-p"></p><!-- axios库地址 --><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script><!-- 省份数据地址 --><!-- 目标: 使用axios库获取省份列表数据,展示到页面上 --><script>axios({url: 'http://hmajax.itheima.net/api/province'}).then(response => {console.log(response)console.log(response.data.list)console.log(response.data.list.join('<br>'))// 在这里处理数据并展示到页面上document.querySelector('.my-p').innerHTML = response.data.list.join('<br>')}).catch(error => {console.error('获取省份列表失败:', error);});</script>
</body></html>

在这里插入图片描述

AJAX-Day01-02.认识URL

什么是url?(Uniform Resource Locator 统一资源定位符)

在这里插入图片描述

url组成

在这里插入图片描述

协议

在这里插入图片描述

域名

在这里插入图片描述

资源路径

在这里插入图片描述

代码示例

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>01.AJAX概念和axios使用</title>
</head><body><p class="my-p"></p><!-- axios库地址 --><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script><!-- 省份数据地址 --><!-- 目标: 使用axios库获取省份列表数据,展示到页面上 --><script>axios({url: 'http://hmajax.itheima.net/api/news'}).then(response => {console.log(response)console.log(response.data.data)}).catch(error => {console.error('获取新闻数据失败:', error);});</script>
</body></html>

在这里插入图片描述

AJAX-Day01-03.查询参数

url查询参数

在这里插入图片描述
在这里插入图片描述

代码示例

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>01.AJAX概念和axios使用</title>
</head><body><p class="my-p"></p><!-- axios库地址 --><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script><!-- 省份数据地址 --><!-- 目标: 使用axios库获取省份列表数据,展示到页面上 --><script>axios({url: 'http://hmajax.itheima.net/api/city',params: {pname: '河北省'}}).then(response => {console.log(response)document.querySelector('.my-p').innerHTML = response.data.list.join('<br>')}).catch(error => {console.error('获取城市数据失败:', error);});</script>
</body></html>

在这里插入图片描述

AJAX-Day01-04.案例_地区查询

查询某个省某个城市所有地区

在这里插入图片描述
查询某个省内某个城市的所有地区:

http://hmajax.itheima.net/api/area

在这里插入图片描述

http://hmajax.itheima.net/api/area?pname=%E7%A6%8F%E5%BB%BA%E7%9C%81&cname=%E5%8E%A6%E9%97%A8%E5%B8%82

在这里插入图片描述

代码示例

查询某个省内某个城市的所有地区:http://hmajax.itheima.net/api/area
查询参数名:

  • pname: 省份名
  • cname: 城市名

帮我改造代码,用户可输入查询省份和城市,点击查询按钮,然后将返回的地区列表展示出来。

参考文章:黑马node.js教程(nodejs教程)——AJAX-Day01-04.案例_地区查询——查询某个省某个城市所有地区(代码示例)

AJAX-Day01-05.常用请求方法和数据提交

常用请求方法

在这里插入图片描述

数据提交场景

在这里插入图片描述

get请求方法示例(axios配置)

在这里插入图片描述

场景示例:注册账号——数据提交

在这里插入图片描述

示例代码

<!DOCTYPE html> <!-- 文档类型声明,告诉浏览器这是一个HTML5文档 -->
<html lang="en"> <!-- HTML根元素,设置文档语言为英语 --><head> <!-- 头部区域,包含文档的元数据 --><meta charset="UTF-8"> <!-- 设置文档字符编码为UTF-8,支持多种语言字符 --><meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- 兼容模式设置,使用最新的IE浏览器渲染模式 --><meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- 视口设置,使网页在移动设备上正确显示 --><title>提交信息</title> <!-- 网页标题,显示在浏览器标签页上 -->
</head><body> <!-- 文档主体,包含页面的可见内容 --><button class="btn">注册用户</button><!-- axios库地址,引入axios HTTP请求库 --><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script><script> <!-- JavaScript代码开始 -->document.querySelector('.btn').addEventListener('click', () => {axios({url: 'http://hmajax.itheima.net/api/register',method: 'post',data: {username: 'itheimaa78944rtert',password: '123456',}}).then(response => {console.log(response.data)})})</script> <!-- JavaScript代码结束 -->
</body></html> <!-- HTML文档结束 -->

在这里插入图片描述

AJAX-Day01-06.axios错误处理

浏览器产生的错误信息&接口返回的错误信息

在这里插入图片描述

示例代码

<!DOCTYPE html> <!-- 文档类型声明,告诉浏览器这是一个HTML5文档 -->
<html lang="en"> <!-- HTML根元素,设置文档语言为英语 --><head> <!-- 头部区域,包含文档的元数据 --><meta charset="UTF-8"> <!-- 设置文档字符编码为UTF-8,支持多种语言字符 --><meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- 兼容模式设置,使用最新的IE浏览器渲染模式 --><meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- 视口设置,使网页在移动设备上正确显示 --><title>提交信息</title> <!-- 网页标题,显示在浏览器标签页上 -->
</head><body> <!-- 文档主体,包含页面的可见内容 --><button class="btn">注册用户</button><!-- axios库地址,引入axios HTTP请求库 --><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script><script> <!-- JavaScript代码开始 -->document.querySelector('.btn').addEventListener('click', () => {axios({url: 'http://hmajax.itheima.net/api/register',method: 'post',data: {username: 'itheimaa78944rtert',password: '123456',}}).then(response => {console.log(response.data)}).catch(error => {console.log(error)console.log('错误信息:', error.response.data.message)alert('注册失败:' + error.response.data.message)console.error('注册失败:', error);})})</script> <!-- JavaScript代码结束 -->
</body></html> <!-- HTML文档结束 -->

在这里插入图片描述

AJAX-Day01-07.HTTP协议_请求报文

请求报文

在这里插入图片描述

请求报文组成

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

AJAX-Day01-08.请求报文-错误排查

错误排查

在这里插入图片描述

这还能直接改属性把密码显示为明文的,厉害!

在这里插入图片描述

在这里插入图片描述

利用浏览器元素选择来快速确定querySelector目标

在这里插入图片描述

AJAX-Day01-09.HTTP协议_响应报文

响应报文

在这里插入图片描述
在这里插入图片描述

HTTP响应状态码

在这里插入图片描述

AJAX-Day01-10.接口文档

定义

在这里插入图片描述

https://apifox.cn/apidoc/project-1937884/api-49760219

在这里插入图片描述
在这里插入图片描述

AJAX-Day01-11.案例_登录

定义文档

在这里插入图片描述

小技巧:浏览器直接复制属性路径可粘贴到代码中

在这里插入图片描述
在这里插入图片描述

AJAX-Day01-12.案例_登录_提示消息

提示框显示由“show”类名控制

在这里插入图片描述
在这里插入图片描述

提示框需求(成功或失败需显示不同文字和样式,需要自动隐藏(通过添加定时器))

在这里插入图片描述

通过给控件class列表增加或删除“show”类名,控制控件的隐藏和显示

在这里插入图片描述
在这里插入图片描述

通过封装提示框函数提高可复用性

在这里插入图片描述

AJAX-Day01-13.form-serialize使用

form-serialize插件(快速搜集表单元素的值)

在这里插入图片描述

form-serialize插件提取键名与表达元素name相同

在这里插入图片描述

hash参数(true解析为js对象,false解析为查询字符串)

在这里插入图片描述

在这里插入图片描述

empty参数(为true是允许空值,false不获取空值(键都没了))

true:
在这里插入图片描述

false:
在这里插入图片描述

代码示例

在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Form Serialize Example</title>
</head><body><form id="myForm"><label for="name">Name:</label><input type="text" id="name" name="name"><br><label for="email">Email:</label><input type="email" id="email" name="email"><br><button type="submit">Submit</button></form><script src="https://cdn.jsdelivr.net/npm/form-serialize@0.7.2/index.js"></script><!-- <script src="https://unpkg.com/form-serialize@0.7.2/dist/form-serialize.min.js"></script> --><script>document.getElementById('myForm').addEventListener('submit', function (event) {event.preventDefault(); // 阻止表单的默认提交行为var form = document.getElementById('myForm');var serializedData = serialize(form, { hash: true, empty: true });console.log(serializedData); // 在控制台打印出序列化的表单数据});</script>
</body></html>

在这里插入图片描述
在这里插入图片描述

AJAX-Day01-14.案例_登录_整合form-serialize插件

AJAX-Day02-01.案例_图书管理_介绍_V1.2

AJAX-Day02-02.Bootstrap弹框使用_属性控制显示和隐藏_V1.6(弹框modal)

Bootstrap弹框

在这里插入图片描述

看到这:https://www.bilibili.com/video/BV1MN411y7pw?vd_source=efd687bf530a46807ba46e69286cafd4&spm_id_from=333.788.videopod.episodes&p=17 5分钟

在这里插入图片描述

bootstrap的modal弹框:添加modal类名(默认隐藏)

代码示例

<!DOCTYPE html>
<html lang="en"><head><!-- 设置文档的字符编码为UTF-8 --><meta charset="UTF-8"><!-- 设置视口,以确保页面在移动设备上显示良好 --><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- 页面标题 --><title>Bootstrap Modal Demo</title><!-- 引入Bootstrap的CSS文件 --><link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet">
</head><body><div class="container mt-5"><!-- 按钮,用于打开弹框 --><!-- class="btn btn-primary":使用Bootstrap的按钮样式类 --><!-- btn:提供基本按钮样式 --><!-- btn-primary:提供主要颜色样式,通常为蓝色 --><!-- data-bs-toggle="modal":指定点击按钮时触发的行为是打开模态框 --><!-- data-bs-target="#myModal":指定要打开的模态框的ID --><button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#myModal">显示弹框</button><!-- 模态框 --><!-- class="modal fade":定义模态框,并使用fade类实现淡入淡出效果 --><!-- id="myModal":模态框的唯一标识符,用于与按钮的data-bs-target属性匹配 --><div class="modal fade" id="myModal"><div class="modal-dialog"><div class="modal-content"><!-- 模态框头部 --><div class="modal-header"><!-- 模态框标题 --><h4 class="modal-title">弹框标题</h4><!-- 关闭按钮 --><!-- data-bs-dismiss="modal":点击按钮时关闭模态框 --><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div><!-- 模态框主体 --><div class="modal-body"><!-- 显示在模态框中的信息 -->这是弹框中的信息展示。</div><!-- 模态框底部 --><div class="modal-footer"><!-- 关闭按钮 --><!-- data-bs-dismiss="modal":点击按钮时关闭模态框 --><button type="button" class="btn btn-secondary" data-bs-dismiss="modal">关闭</button><!-- 保存按钮 --><!-- 目前没有绑定具体功能,可以根据需要添加事件处理 --><button type="button" class="btn btn-primary">保存</button></div></div></div></div></div><!-- 引入Bootstrap的JavaScript文件 --><script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js"></script>
</body></html>

在这里插入图片描述

AJAX-Day02-03.Bootstrap弹框使用_JS控制显示和隐藏_V1.4

bootstrap弹框(如果不需要在显示隐藏弹框时做操作,比如获取表达属性值,可以通过属性控制弹框显示或隐藏;否则可以通过JS控制弹框显示或隐藏)

在这里插入图片描述

AJAX-Day02-04.案例_图书管理_渲染列表_V1.4

AJAX-Day02-05.案例_图书管理_新增图书_V1.4

AJAX-Day02-06.案例_图书管理_删除图书_V1.1

AJAX-Day02-07.案例_图书管理_编辑图书_弹框准备_V1.2

AJAX-Day02-08.案例_图书管理_编辑图书_数据回显_V1.1

AJAX-Day02-09.案例_图书管理_编辑图书_保存修改_V1.1

AJAX-Day02-10.案例_图书管理_总结_V1.0

AJAX-Day02-11.图片上传_V1.1

看到这:https://www.bilibili.com/video/BV1MN411y7pw?vd_source=efd687bf530a46807ba46e69286cafd4&spm_id_from=333.788.videopod.episodes&p=26

图片上传

在这里插入图片描述
在这里插入图片描述

change事件

参考文章:JavaScript图片上传并展示(change事件)

AJAX-Day02-12.案例_网站-更换背景_V1.1

AJAX-Day02-13.案例_个人信息设置_介绍

AJAX-Day02-14.案例_个人信息设置_信息渲染

AJAX-Day02-15.案例_个人信息设置_头像修改

AJAX-Day02-16.案例_个人信息设置_信息修改

AJAX-Day02-17.案例_个人信息设置_提示框

AJAX-Day03-01.XMLHttpRequest_基本使用

XMLHttpRequest原理(axios 内部采用 XMLHttpRequest与服务器交互)

在这里插入图片描述

使用XMLHttpRequest

在这里插入图片描述

XMLHttpRequest请求示例

在这里插入图片描述
参考文章:XMLHttpRequest介绍(XHR对象)介绍(浏览器API对象,允许客户端脚本发送HTTP请求与服务器进行数据交换,无需刷新整个页面)(AJAX核心组件)XMLHttpRequest请求示例

总结

在这里插入图片描述

AJAX-Day03-02.XMLHttpRequest_查询参数

定义

在这里插入图片描述

示例

在这里插入图片描述

参考文章:HTTP查询参数示例(XMLHttpRequest查询参数)(带查询参数的HTTP接口示例——以python flask接口为例)flask查询接口

AJAX-Day03-03.案例_地区查询

AJAX-Day03-04.XMLHttpRequest_数据提交

请求头Content-Type设置为application/json

在这里插入图片描述

参考文章:XHR数据提交(XMLHttpRequest数据提交demo)HTTP数据提交、Content-Type:application/json(账号注册示例)json提交、json数据提交

AJAX-Day03-05.认识_Promise

定义与语法

在这里插入图片描述

语法

resolve和reject为连个回调函数。

参考文章:JavaScript promise介绍(表示一个异步操作的最终完成或失败及其结果值)(待定pending、已兑现fulfilled、已拒绝rejected)async、await

总结

在这里插入图片描述

AJAX-Day03-06.认识_Promise的三种状态

三种状态

在这里插入图片描述

promise对象刚创建是pending状态(待定)

在这里插入图片描述

成功执行将变成fulfilled状态(已兑现)

在这里插入图片描述

执行失败将变成rejected状态(已拒绝)

在这里插入图片描述

AJAX-Day03-07.使用Promise和XHR获取省份列表

需求

在这里插入图片描述

实现细节

在这里插入图片描述
参考文章:JavaScript promise实例——通过XHR获取省份列表

AJAX-Day03-08.封装_简易axios_获取省份列表(用xhs模拟实现axios)

需求

在这里插入图片描述

实现

在这里插入图片描述
代码略。

AJAX-Day03-09.封装_简易axios_获取地区列表(支持查询参数传递)

思路(使用URLSearchParams对象将config.json中的param转换成url查询字符串)

在这里插入图片描述

代码示例

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

AJAX-Day03-10.封装_简易axios_携带请求体数据(data)

原理

在这里插入图片描述

代码(注意JSON.stringify和setRequestHeader)

在这里插入图片描述
在这里插入图片描述

AJAX-Day03-11.案例_天气预报_获取默认数据

AJAX-Day03-12.案例_天气预报_展示默认数据

AJAX-Day03-13.案例_天气预报_搜索城市列表

AJAX-Day03-14.案例_天气预报_展示城市天气

AJAX-Day04-01.同步代码和异步代码

定义

在这里插入图片描述

AJAX-Day04-02.回调函数地狱

定义

在这里插入图片描述

演示

在这里插入图片描述

发现错误并没有被catch捕获到。

总结

在这里插入图片描述

AJAX-Day04-03.Promise_链式调用

概念

在这里插入图片描述

示例

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

AJAX-Day04-04.Promise_链式调用_解决回调地狱

参考文章:JS Promise链式调用介绍(处理多个异步操作)(Promise对象).then()、.catch()、Promise.all并行处理、Promise.race竞态模式

AJAX-Day04-05.async函数和await_解决回调函数地狱

定义

在这里插入图片描述

AJAX-Day04-06.async函数和await_错误捕获

try…catch

在这里插入图片描述
在这里插入图片描述

AJAX-Day04-07.事件循环EventLoop

认识-事件循环(EventLoop)

在这里插入图片描述
结果都是132

定义

在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述

AJAX-Day04-08.事件循环_练习

练习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

AJAX-Day04-09.微任务与宏任务

概念

在这里插入图片描述

执行顺序

在这里插入图片描述

总结

在这里插入图片描述

AJAX-Day04-10.事件循环经典面试题

测试题

在这里插入图片描述

结果:1756234

在这里插入图片描述

注意对于定时器,更快到达延迟时间的会先被推入宏任务队列执行。

确实有点复杂,需要明确哪些会被推到宏任务队列,那些会被推到微任务队列,然后根据“先清空微任务队列,再执行宏任务队列”的原则执行

具体看视频吧:https://www.bilibili.com/video/BV1MN411y7pw/?p=56

AJAX-Day04-11.Promise.all静态方法

定义:合并多个 Promise 对象,等待所有同时成功完成(或某一个失败),做后续逻辑

在这里插入图片描述

语法

在这里插入图片描述

代码案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

AJAX-Day04-12.案例_商品分类

AJAX-Day04-13.案例_学习反馈_省份菜单

AJAX-Day04-14.案例_学习反馈_城市菜单

AJAX-Day04-15.案例_学习反馈_地区菜单

AJAX-Day04-16.案例_学习反馈_提交数据

项目-01.项目介绍

链接

https://geek.itheima.net/

项目-02.项目准备

使用技术

1. 基于 Bootstrap 搭建网站标签和样式
2. 集成 wangEditor 插件实现富文本编辑器
3. 使用原生 JS 完成增删改查等业务
4. 基于 axios 与黑马头条线上接口交互
5. 使用 axios 拦截器进行权限判断

项目准备

在这里插入图片描述

项目目录管理

在这里插入图片描述
在这里插入图片描述

项目-03.验证码登录

目标以及基地址的设置(方便维护)

在这里插入图片描述
在这里插入图片描述

项目-04.验证码登录流程

代码介绍

在这里插入图片描述
在这里插入图片描述

bootstrap警告框插件的使用

在这里插入图片描述
在这里插入图片描述

验证码登录流程

在这里插入图片描述

项目-05.token的介绍和权限访问控制

token介绍

在这里插入图片描述

token的使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述

项目-06.个人信息设置和axios请求拦截器(发起请求之前,触发的配置函数,对请求参数进行额外配置)

在请求拦截器统一设置公共headers选项(统一设置请求头)

图片里好像写错了,不是location.getItem(),而是localStorage.getItem()。
在这里插入图片描述

代码示例

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述

项目-07.axios响应拦截器和身份验证失败

定义

在这里插入图片描述

示例:拦截器中判断状态码token失效然后清空本地存储并跳转到登录页面

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述

项目-08.优化axios响应结果(封装时嵌套了多层data,有点重复,解析时去掉一层data)

定义

在这里插入图片描述

代码示例

在这里插入图片描述

项目-09.发布文章-富文本编辑器

项目-10.发布文章-频道列表

项目-11.发布文章-封面设置

项目-12.发布文章-收集并保存

项目-13.内容管理-文章列表展示

项目-14.内容管理-筛选功能

项目-15.内容管理-分页功能

项目-16.内容管理-删除功能

项目-17.内容管理-删除最后一条

项目-18.内容管理-编辑文章-回显

项目-19.内容管理-编辑文章-保存

项目-20.退出登录

相关文章:

《黑马前端ajax+node.js+webpack+git教程》(笔记)——ajax教程(axios教程)

黑马程序员前端AJAX入门到实战全套教程&#xff0c;包含学前端框架必会的&#xff08;ajaxnode.jswebpackgit&#xff09;&#xff0c;一套全覆盖 文章目录 框架前置导学AJAX-Day01-01.AJAX入门与axios使用什么是AJAX如何使用AJAX使用axios获取数据案例axios语法尝试获取数据代…...

超级管理员租户资源初始化与授权管理设计方案

背景说明 在多租户系统中&#xff0c;资源&#xff08;如功能模块、系统菜单、服务能力等&#xff09;需按租户维度进行授权管理。超级管理员在创建新租户时&#xff0c;需要初始化该租户的资源授权信息。 两种可选方案 方案描述方案 A&#xff1a;前端传入选中的资源列表创…...

【Python训练营打卡】day30 @浙大疏锦行

DAY 30 模块和库的导入 知识点回顾&#xff1a; 1. 导入官方库的三种手段 2. 导入自定义库/模块的方式 3. 导入库/模块的核心逻辑&#xff1a;找到根目录&#xff08;python解释器的目录和终端的目录不一致&#xff09; 作业&#xff1a;自己新建几个不同路径文件尝试下如何…...

微前端记录

微前端 实习过程中&#xff0c;做了些微前端方向的调研&#xff0c;记录下 微前端将前端拆分为独立的可以单独运行&#xff0c;测试&#xff0c;部署的代码&#xff0c; 具有技术栈无关&#xff0c;多团队&#xff0c;多业务线协作的特点。 前端现有的页面&#xff0c;分为单页…...

词嵌入基础

一 前言 最近在学习NLP方面知识&#xff0c;在此记录一下词嵌入的技术。 二 词袋法 1.理论 就是统计一个句子或文章中&#xff0c;词语出现的次数。这方法有去重词袋法&#xff0c;无去重词袋法。 a 原理与案例 chinese_docs ["我爱自然语言处理","自然语…...

CSS之网页元素的显示与隐藏(旧土豆网遮罩案例)

网页元素的显示与隐藏。 很多网页的侧边栏都会出现广告&#xff0c;我们点击关闭时&#xff0c;广告会消失不见&#xff0c;但若重新刷新网页页面&#xff0c;则广告会重新出现。网页的广告并非是真的被删除了&#xff0c;而是被暂时的隐藏起来了。 • display • visibil…...

关于 Web 漏洞原理与利用:2. XSS(跨站脚本攻击)

一、原理&#xff1a; 用户输入未过滤被执行 攻击者输入的内容&#xff0c;如果没有被正确处理&#xff08;过滤/转义&#xff09;&#xff0c;被网页原样输出到浏览器中&#xff0c;那么这些内容就可能会被浏览器当成代码执行&#xff0c;这就是 XSS&#xff08;跨站脚本攻击…...

【TTS回顾】深度剖析 TTS 合成效果的客观评估与主观评价

如何评估合成音色的效果 当我们面对一个新发布的 TTS 模型,或者在多个模型之间进行选择时,一个核心问题摆在我们面前:如何科学、全面地评估一个 TTS 模型的合成效果? 仅仅凭感觉“听一听”显然不够客观和系统。我们需要一套行之有效的评估方法和指标体系,来衡量 AI “说话…...

WPF点击按钮弹出一个窗口

一、基本方法&#xff1a;直接实例化并显示窗口 1. 普通窗口&#xff08;无参数&#xff09; 适用场景&#xff1a;简单的弹出窗口&#xff0c;无需传递数据。 private void Button_Click(object sender, RoutedEventArgs e) { var newWindow new MyWindow(); // 实例化…...

WPF中的ObjectDataProvider:用于数据绑定的数据源之一

ObjectDataProvider是WPF(Windows Presentation Foundation)中一种强大而灵活的数据绑定源&#xff0c;它允许我们将对象实例、方法结果甚至是构造函数的返回值用作数据源。通过本文&#xff0c;我将深入探讨ObjectDataProvider的工作原理、使用场景以及如何在实际应用中发挥其…...

Java POJO接收前端null值设置

在 Java 中&#xff0c;若要让 price 字段接收前端传递的 null 值&#xff0c;只需确保以下几点&#xff1a; 1. 使用包装类型 Double 你的 price 字段已经是包装类型 Double&#xff08;而不是基本类型 double&#xff09;&#xff0c;这天然支持 null 值。基本类型 double …...

C++(24):容器类<list>

目录 一、核心概念 二、基本语法 1. 声明与初始化 2.添加元素 3.访问与遍历 4. 删除元素 三、特点 1. 高效插入/删除 2. 不支持随机访问 3. 特有成员函数 4. 内存与性能 四、示例代码 五、成员函数 六、使用场景 七、注意事项 Lists将元素按顺序储…...

WPF Data Binding 及经典应用示例

什么是Data Binding&#xff08;数据绑定&#xff09;&#xff1f; Data Binding是WPF中的核心机制&#xff0c;它建立了UI元素&#xff08;视图&#xff09;与数据对象&#xff08;模型/视图模型&#xff09;之间的连接通道&#xff0c;实现了数据的自动同步。当数据发生变化…...

Qt—模态与非模态对话框

Qt—模态与非模态对话框 核心概念 ​模态对话框​​&#xff1a;强制用户优先处理当前窗口&#xff0c;阻塞指定范围的用户交互。​非模态对话框​​&#xff1a;允许用户自由切换窗口&#xff0c;无交互限制。 一、模态对话框类型与行为 1. 应用级模态&#xff08;Applica…...

如何实现从网页一键启动你的 Electron 桌面应用(zxjapp://)

在现代桌面应用开发中&#xff0c;Electron 凭借其跨平台能力和前端友好的特性&#xff0c;受到了越来越多开发者的青睐。但你是否想过&#xff0c;如何让用户从网页上一键启动你本地的 Electron 应用&#xff1f;比如像某些云盘客户端那样&#xff0c;点击网页上的按钮就能直接…...

linux编译安装srs

下载编译运行 git clone https://github.com/ossrs/srs.git cd srs/trunk ./configure --h265on make需要安装 yum install -y patch yum install -y unzip yum install -y tcl编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/s…...

对于程序员的个人理解

系统架构师 1.下图是应该具备的能力&#xff0c;而且看前辈的资料中&#xff0c;发现干的时间越多就越全能。 2.对于新技术来说应该让其先沉淀三年左右看他是不是能打&#xff0c;同时可以避免其大规模的改动。 3.要有宏观视野 【要看自己所开发的东西是不是可以随时调用&am…...

Web安全基础

文章目录 前端基础浏览器工作原理HTTP超文本传输协议cookiesessiontoken web服务器USBWebServerNginx介绍 前端三大件html超文本标记语言CSS层叠样式表JavaScript基本语法php基本语法 攻击手段文件上传漏洞文件包含漏洞代码执行漏洞变量修改shell监听SQL注入跨站脚本XSSXSS示例…...

从秒开到丝滑体验!WebAssembly助力ZKmall商城重构 B2B2C 商城性能基线

在 B2B2C 电商领域&#xff0c;用户对页面加载速度与交互流畅度的要求日益严苛。传统 Web 技术在处理复杂业务逻辑、海量数据渲染时&#xff0c;常出现卡顿、延迟等问题&#xff0c;导致用户流失。ZKmall 商城创新性地引入 WebAssembly&#xff08;简称 Wasm&#xff09;技术&a…...

word文档交叉引用

参考视频 论文排版中参考文献的引用方法&#xff1a;交叉引用法_哔哩哔哩_bilibili 具体操作 定义编号格式 进入开始页面&#xff0c;重新定义编号格式. 碰到的问题 出现了一个大大的空格&#xff0c;不知道是什么情况&#xff0c;想把编号和参考文献紧贴在一起。 调整列…...

项目QT+ffmpeg+rtsp(三)——延迟巨低的项目+双屏显示

文章目录 前言双屏显示widget.cppwidget.h前言 对于复现情况,分为两种情况 第一种,对于我而言,是直接解压后,就能直接运行了 第二种,对于师兄而言,需要你构建debug后,会产生这个文件夹,执行的时候,地址应该在这,我猜的,这里面没有dll,exe程序就找不到dll这些库,你…...

二分交互题总结

简单版 bool query(int x){cout<<x<<endl;cout.flush();string ans;cin>>ans;return (ans">"); } void solve() {int n;cin>>n;int l1,rn;if(n1)return cout<<"! 1"<<endl,void();if(n2){if(query(2))return cout&…...

昆仑通态MCGSpro,自定义配方功能

最近在做一个机床的控制系统&#xff0c;是用来打磨轴承滚子的&#xff0c;用到了昆仑通态触摸屏&#xff0c;西门子1200&#xff0c;以及1个台达变频器&#xff0c;五个私服电机。大致就是下面这个设备。 对于西门子1200运动控制的相关内容&#xff0c;以及调试过程中遇到的坑…...

工业视觉高精度测量利器——Halcon卡尺工具深度解析

Halcon中的卡尺工具&#xff08;Caliper Tool&#xff09;是工业视觉中用于高精度边缘检测和几何测量的重要功能&#xff0c;尤其在尺寸测量、定位和对象分析中广泛应用。以下从原理、实现到优化的深度解析&#xff1a; 1. 卡尺工具实现原理&#xff08;步骤分解&#xff09;​…...

2025毕业论文与答辩资料精选汇总

毕业季来临&#xff0c;对于即将毕业的大学生来说&#xff0c;毕业论文和答辩无疑是毕业季的“重头戏”。尤其是对于IT行业的学生来说&#xff0c;毕业论文不仅需要扎实的专业知识&#xff0c;还需要良好的表达能力和清晰的逻辑思维。今天&#xff0c;我为大家整理了一份涵盖IT…...

「数智化聚合分销生态系统」定制开发:重构全渠道增长引擎

在数字经济深度重构全球商业格局的时代&#xff0c;企业亟需突破传统分销体系的效能边界&#xff0c;构建具有核心竞争力的现代化营销网络。我们以行业前沿技术为驱动&#xff0c;提供全栈式聚合分销系统定制开发服务&#xff0c;通过深度融合数字化、智能化解决方案&#xff0…...

【物联网】 ubantu20.04 搭建L2TP服务器

部署篇 序言 为了是两个客户端在同一个网络内&#xff0c;需要找一台服务器&#xff0c;搭建一个L2TP服务器&#xff0c;通过L2TP使两个客户端在同一个网络内,为什么要搭建&#xff0c;主要是解决例如员工出差后&#xff0c;还需要连接公司内网资源的问题&#xff0c;本文主要…...

std::ranges::iota

std::ranges::iota_view 和 std::views::iota 是 C23 Ranges 库中的一部分&#xff0c;用于生成一系列递增的值&#xff0c;类似 Python 的 range() 或传统的 for 循环生成器。 一 原形 Defined in header <numeric> Call signature template< std::input_or_output…...

物联网简介:万物互联的未来图景

物联网简介&#xff1a;万物互联的未来图景 引言 在科技飞速发展的今天&#xff0c;我们身边的一切似乎都在悄然发生变化。从清晨智能闹钟根据你的睡眠状态自动唤醒&#xff0c;到厨房里的咖啡机在你起床前已经煮好咖啡&#xff1b;从城市交通系统通过实时数据优化红绿灯时长…...

Python类方法解析:从字节序列重构Vector2d实例

这篇文章将详细解析Python中的classmethod装饰器&#xff0c;并通过一个实际案例——为Vector2d类实现frombytes方法&#xff0c;展示如何从字节序列重构对象实例。 类方法基础 classmethod是Python中一个重要的装饰器&#xff0c;它用于定义类方法。与普通实例方法不同&…...

list.forEach(s -> countService.refreshArticleStatisticInfo(s.getId())); 讲解一下语法

这段代码使用了Java中的forEach方法结合Lambda表达式来遍历一个列表&#xff0c;并对列表中的每个元素执行特定操作。具体来说&#xff0c;它会遍历列表中的每一个元素&#xff0c;并调用countService.refreshArticleStatisticInfo(s.getId())方法来刷新每个文章的统计信息。下…...

linux服务器与时间服务器同步时间

内网部署服务器&#xff0c;需要同步时间 使用系统内置的systemctl-timesyncd进行时间同步 1.编辑配置文件 sudo nano /etc/systemd/timesyncd.conf修改添加内容入下 [Time] NTP10.100.13.198 FallbackNTP#说明 #NTP10.100.13.198&#xff1a;你的主 NTP 时间服务器 IP #Fall…...

通过低功耗蓝牙通信实例讲透 MCU 各个定时器

📖 在嵌入式开发中,“定时器”几乎无处不在。但大多数人一说起定时器,要么只会 HAL_Delay(),要么搞不清楚硬件、虚拟、协议定时器到底有啥区别。 今天我们不讲纯理论,而是直接通过一个完整的 BLE 通信实例,带你一次性搞清楚 MCU 各类定时器的真实用途和工作机制。 📚…...

Spring_Boot(一)Hello spring boot!

新建项目加入 spring_web 依赖&#xff0c;生成如下 pom.xml文件&#xff0c;即为代码配置。 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XML…...

MySQL故障排查与生产环境优化

目录 一、前置知识点&#xff1a;MySQL 逻辑架构解析 &#xff08;一&#xff09;客户端和连接服务层&#xff08;最上层&#xff09; &#xff08;二&#xff09;核心服务层&#xff08;第二层&#xff09; &#xff08;三&#xff09;存储引擎层 &#xff08;四&#xf…...

mysql故障排查与环境优化

一、mysql运行原理 mysql的运行分为三层 客户端和连接服务 核心服务功能&#xff08;sql接口、缓存的查询、sql的分析和优化以及部分内置函数的执行等。&#xff09; 存储引擎层&#xff08;负责mysql中数据的存储和提取。&#xff09; 二、示例 1、实验环…...

博图1200硬件组态与启保停程序编写步骤详解

一、前言 在工业自动化控制领域&#xff0c;西门子S7-1200 PLC因其性能稳定、编程灵活而广受欢迎。本文将详细介绍使用TIA Portal&#xff08;博图&#xff09;软件进行S7-1200 PLC硬件组态以及编写基本启保停程序的完整步骤&#xff0c;帮助初学者快速掌握这一基础而重要的技…...

深入解析Java微服务架构:Spring Boot与Spring Cloud的整合实践

深入解析Java微服务架构&#xff1a;Spring Boot与Spring Cloud的整合实践 引言 随着云计算和分布式系统的快速发展&#xff0c;微服务架构已成为现代软件开发的主流模式。Java作为企业级应用开发的核心语言&#xff0c;结合Spring Boot和Spring Cloud的强大生态&#xff0c;…...

AM32电调学习解读九:ESC上电启动关闭全流程波形分析

这是第九篇&#xff0c;前面的文章把各个模块的实现都介绍了一轮&#xff0c;本章是从运行的角度结合波形图&#xff0c;把整个流程走一遍。 先看下一运行的配置&#xff0c;我把一些配置关闭了&#xff0c;这样跑起来会好分析一些&#xff0c;不同配置跑起来效果会有差异。使用…...

迅联文库开发日志(三)登陆注册

目录 一、注册 Controller层 Service层 二、登录 其他需要注意的&#xff1a; 需要实现 Serializable 的场景​ 一、注册 先思考我们需要哪些参数&#xff1a; 邮箱、昵称、密码、邮箱验证码 &#xff08;图片验证码会调用checkCode()验证&#xff09; Controller层 Req…...

Oracle 数据库的默认隔离级别

Oracle 数据库的默认隔离级别 默认隔离级别&#xff1a;READ COMMITTED Oracle 默认使用 读已提交(READ COMMITTED) 隔离级别&#xff0c;这是大多数OLTP(在线事务处理)系统的标准选择。 官方文档 https://docs.oracle.com/en/database/oracle/oracle-database/19/cncpt/da…...

PDF 合并测试:性能与内容完整性

我们一直在改进 PDF 合并工具 JPedal&#xff0c;并希望通过测试对比其与其他工具的表现。该工具支持合并包括大文件在内的完整文档。 如何测试 PDF 合并输出 我们在示例文件上进行了对比测试&#xff0c;您也可以用自有文件复现。 测试中使用的方法之一是借助 Adobe Reader&a…...

白杨SEO:不到7天,白杨SEO博客网站百度搜索显示和排名恢复正常!顺带说说上海线下GEO聚会分享和播客红利

大家好&#xff0c;我是白杨SEO&#xff0c;专注SEO十年以上&#xff0c;全网SEO流量实战派&#xff0c;AI搜索优化研究者。 5月开始&#xff0c;明显就忙起来了&#xff0c;不管是个人陪跑还是企业顾问&#xff0c;不管是需要传统SEO还是新媒体流量&#xff0c;还是当下这个A…...

docker介绍与常用命令汇总

docker简介 docker是什么&#xff1f; Docker 是一个开源的应用容器引擎&#xff0c;它可以让开发者将应用与运行环境打包成一个标准的、可移植的容器&#xff08;Container&#xff09;&#xff0c;在任何地方都可以快速部署和运行&#xff0c;无需关心底层环境是否一致。 …...

Axure设计数字乡村可视化大屏:构建乡村数据全景图

今天&#xff0c;让我们一同深入了解由Axure设计的数字乡村可视化大屏&#xff0c;看看它如何通过精心的布局和多样化的图表类型&#xff0c;将乡村的各类数据以直观、易懂的方式呈现出来&#xff0c;为乡村管理者提供有力的数据支持。 原型效果预览链接&#xff1a;Axure数字乡…...

c#基础01(.Net介绍)

文章目录 .Net平台介绍.Net平台简介跨平台开源.Net Core.Net Framework开发工具安装选项 创建项目 .Net平台介绍 .Net平台简介 .NET是一种用于构建多种应用的免费开源开放平台&#xff0c;例如&#xff1a; Web 应用、Web API 和微服务 云中的无服务器函数 云原生应用 移动…...

GraphQL在.NET 8中的全面实践指南

一、GraphQL与.NET 8概述 GraphQL是一种由Facebook开发的API查询语言&#xff0c;它提供了一种更高效、更灵活的替代REST的方案。与REST不同&#xff0c;GraphQL允许客户端精确指定需要的数据结构和字段&#xff0c;避免了"过度获取"或"不足获取"的问题。…...

开源音视频转文字工具:基于 Vosk 和 Whisper 的多语言语音识别项目

背景介绍 随着短视频、播客等音视频内容的爆发式增长&#xff0c;快速将音视频内容转换为文字的需求也越来越大。无论是内容创作者需要的字幕&#xff0c;还是企业需要的会议记录&#xff0c;都需要一个可靠的语音转文字解决方案。 技术架构 本项目采用双引擎架构&#xff0…...

Playwright 多语言一体化——Python_Java_.NET 全栈采集实战

在现代 Web 自动化领域&#xff0c;Playwright 通过其多语言支持可在 Python、Java 及 .NET 三大生态中共享同一底层实现&#xff0c;简化了跨团队协作与维护成本 。然而&#xff0c;若忽略代理IP等必要配置&#xff0c;很容易导致功能异常或被目标网站限制&#xff0c;本文将以…...

【Linux网络】传输层协议UDP

&#x1f308;个人主页&#xff1a;秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343 &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/qinjh_/category_12891150.html 目录 传输层 再谈端口号 端口号范围划分 认识知名端口号(Well-Know Port Number…...