【JavaWeb12】数据交换与异步请求:JSON与Ajax的绝妙搭配是否塑造了Web的交互革命?

文章目录
- 🌍一. 数据交换--JSON
- ❄️1. JSON介绍
- ❄️2. JSON 快速入门
- ❄️3. JSON 对象和字符串对象转换
- ❄️4. JSON 在 java 中使用
- ❄️5. 代码演示
- 🌍二. 异步请求--Ajax
- ❄️1. 基本介绍
- ❄️2. JavaScript 原生 Ajax 请求
- ❄️3. JQuery 的 Ajax 请求
- 🌍三. 线程数据共享和安全 -ThreadLocal
- ❄️1. ThreadLocal基本介绍
- ❄️2. 源码分析
🙋♂️ 作者:@whisperrr.🙋♂️
👀 专栏:JavaWeb👀
💥 标题:【JavaWeb12】数据交换与异步请求:JSON与Ajax的绝妙搭配是否塑造了Web的交互革命?💥
❣️ 寄语:比较是偷走幸福的小偷❣️
前言:
数据交换和异步请求技术在Web开发中扮演着举足轻重的角色。JSON和Ajax作为这两大技术的代表,已经成为了前端工程师必备的技能。本文将带您深入了解JSON与Ajax的原理、应用场景和细节说明,助您在Web开发领域更进一步。
🌍一. 数据交换–JSON
❄️1. JSON介绍
1.JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
2.JSON 是轻量级的文本数据交换格式
3.JSON 独立于语言 [解读:即 java 、php、asp.net , go 等都可以使用 JSON]
4.JSON 具有自我描述性,更易理解, 一句话,非常的好用…

❄️2. JSON 快速入门
1.JSON 的定义格式
var 变量名 = { "k1" : value, // Number 类型"k2" : "value", // 字符串类型"k3" : [],// 数组类型"k4" : {}, // json 对象类型"k5" : [{},{}] // json 数组};
2.解读 JSON 规则
- 映射(元素/属性)用冒号 : 表示,“名称”:值 , 注意名称是字符串,因此要用双引号引起来
- 并列的数据之间用逗号 , 分隔。“名称 1”:值,“名称 2”:值
- 映射的集合(对象)用大括号 {} 表示。{“名称 1”:值,“名称 2”:值}
- 并列数据的集合(数组)用方括号 [] 表示。 [{“名称 1”:值,“名称 2”:值}, {“名称 1”:值," 名称 2":值}]
- 元素值类型:
string, number, object, array, true, false, null
3.JSON 快速入门案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>json 快速入门案例</title>
<script type="text/javascript">
var myJson = { "key1": "教育", // 字符串"key2": 123, // Number "key3": [1, "hello", 2.3], // 数组"key4": {"age": 12, "name": "jack"}, //json 对象"key5": [ //json 数组{"k1": 10, "k2": "milan"}, {"k3": 30, "k4": "smith"}]
};
//访问 json 的属性
console.log("key1= " + myJson.key1);
// 访问 json 的数组属性
console.log("key3[1]= " + myJson.key3[1]); // hello
// 访问 key4 的 name 属性
console.log("name= " + myJson.key4.name); // jack
// 访问 key5 json 数组的第一个元素
console.log("myJson.key5[0]= " + myJson.key5[0]); //[object, object]
console.log("myJson.key5[0].k2= " + myJson.key5[0].k2)// milan
</script>
</head>
<body>
<h1>json 快速入门案例</h1>
</body>
</html>
❄️3. JSON 对象和字符串对象转换
1.应用案例
JSON.stringify(json)功能: 将一个 json 对象转换成为 json 字符串 [简单说名字来源.]SerializeJSON.parse( jsonString )功能: 将一个 json 字符串转换成为 json 对象
代码演示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JSON 对象和字符串对象转换</title>
<script type="text/javascript">
// 一个 json 对象
var jsonObj = {"name": "韩顺平教育", age: 10};
//JSON 是一个 build-in 对象,内建对象,有方法可以使用
console.log(JSON)
// 把 json 对象转换成为字符串对象
var jsonStr = JSON.stringify(jsonObj);
console.log(jsonStr);
// 把 json 对象的字符串,转换成为 json 对象
var jsonObj2 = JSON.parse(jsonStr);
console.log(jsonObj2);
</script>
</head>
<body>
<h1>JSON 对象和字符串对象转换</h1>
</body>
</html>
2.注意事项和细节
1.JSON.springify(json 对 象) 会 返 回对 应 string, 并 不 会影 响 原 来 json 对 象.
2.JSON.parse(string) 函数会返回对应的 json 对象, 并不会影响原来 string.
3.在定义 Json 对象时, 可以使用' '表示字符串.
比如var json_person = {"name": "jack", "age": 100};
也可以写成var json_person = {'name': 'jack', 'age': 100};
4.但是在把原生字符串转成 json 对象时, 必须使用"", 否则会报错
比如:var str_dog = "{'name':'小黄狗', 'age': 4}"; 转 json 就会报错.
5.JSON.springify(json 对象) 返回的字符串, 都是 “” 表示的字符串, 所以在语法格式正确的情况下, 是可以重新转成 json 对象的.
❄️4. JSON 在 java 中使用
1.说明
- java 中使用 json,需要引入到第 3 方的包
gson.jar - Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。
- 可以对 JSON 字符串 和 Java 对象相互转换
2.JSON 在 Java 中应用场景
- Javabean 对象和 json 字符串 的转换
- List 对象和 json 字符串 的转换
- map 对象和 json 字符串 的转换
3.应用场景示意图

❄️5. 代码演示
1.代码演示:演示javabean 和 json字符串的转换
//创建一个gson对象,做完一个工具对象使用Gson gson = new Gson();//演示javabean 和 json字符串的转换Book book = new Book(100, "零基础学Java");//1. 演示把javebean -> json字符串String strBook = gson.toJson(book);System.out.println("strBook=" + strBook);//2. json字符串->javabeanBook book2 = gson.fromJson(strBook, Book.class);System.out.println("book2=" + book2);
解读
(1) strBook 就是 json字符串
(2) Book.class 指定将 json字符串转成 Book对象
(3) 底层是反射机制
2.代码演示:演示把list对象 -> json字符串
//1. 演示把list对象 -> json字符串List<Book> bookList = new ArrayList<>();bookList.add(new Book(200, "天龙八部"));bookList.add(new Book(300, "三国演义"));//因为把对象,集合转成字符串, 相对比较简单//底层只需要遍历, 按照json格式拼接返回即可String strBookList = gson.toJson(bookList);System.out.println("strBookList= " + strBookList);
因为把对象,集合转成字符串, 相对比较简单
底层只需要遍历, 按照json格式拼接返回即可
3.代码演示:演示把json字符串 -> list对象
(1) 如果需要把json字符串 转成 集合这样复杂的类型, 需要使用gson提供的一个类
(2) TypeToken , 是一个自定义泛型类, 然后通过TypeToken来指定我们需要转换成的类型
Type type = new TypeToken<List<Book>>() {}.getType();List<Book> bookList2 = gson.fromJson(strBookList, type);System.out.println("bookList2= " + bookList2);
(1) 返回类型的完整路径java.util.List<com.hspedu.json.Book>
(2) gson的设计者,需要得到类型的完整路径,然后进行底层反射
(3) 所以gson 设计者就提供TypeToken, 来搞定.
== 使用TypeToken , 为什么要加 {}==
首先我们看一下TypeToken的源码
com.google.gson.reflectpublic class TypeToken<T> {final Class<? super T> rawType;final Type type;final int hashCode;protected TypeToken() {this.type = getSuperclassTypeParameter(this.getClass());this.rawType = Types.getRawType(this.type);this.hashCode = this.type.hashCode();}
(1) 如果我们
new TypeToken<List<Book>>()
错误提示'TypeToken()' has protected access in 'com.google.gson.reflect.TypeToken'
(2) 因为TypeToken 的无参构造器是protected , 而new TypeToken<List<Book>>()就是调用其无参构造器
(3) 根据java基础, 如果一个方法是protected,而且不在同一个包,是不能直接访问的, 因此报错
(4) 为什么new TypeToken<List<Book>>(){}使用就可以,这里就涉及到匿名内部类的知识.
(5) 当new TypeToken<List<Book>>(){} 其实这个类型就是不是 TypeToken 而是一个匿名内部类(子类),继承
(6) 而且这个匿名内部类是有自己的无参构造器(隐式), 根据java基础规则 当执行子类的无参构造器时, 默认super();
4.代码演示:演示把mapt对象 -> json字符串(与list基本一致)
//把map对象->json字符串Map<String, Book> bookMap = new HashMap<>();bookMap.put("k1", new Book(400, "射雕英雄传"));bookMap.put("k2", new Book(500, "西游记"));String strBookMap = gson.toJson(bookMap);System.out.println("strBookMap=" + strBookMap);// 把json字符串 -> map对象// new TypeToken<Map<String, Book>>() {}.getType()=> java.util.Map<java....String,com.hspedu.json.Book>Map<String, Book> bookMap2 = gson.fromJson(strBookMap,new TypeToken<Map<String, Book>>() {}.getType());
🌍二. 异步请求–Ajax
❄️1. 基本介绍
1.Ajax 是什么
- AJAX 即"Asynchronous Javascript And XML"(异步 JavaScript 和 XML)
- Ajax 是一种浏览器异步发起请求(指定发哪些数据),局部更新页面的技术
Ajax 经典应用场景 - 搜索引擎根据用户输入关键字,自动提示检索关键字
- 动态加载数据,按需取得数据【树形菜单、联动菜单…】
- 改善用户体验。【输入内容前提示、带进度条文件上传…】
- 电子商务应用。 【购物车、邮件订阅…】
- 访问第三方服务。【访问搜索服务、rss 阅读器】
- 页面局部刷新
2.Ajax 原理示意图

❄️2. JavaScript 原生 Ajax 请求
1 Ajax 文档
首先给大家推荐一下Ajax的在线文档
https://www.w3school.com.cn/js/js_ajax_intro.asp
2.通过下面的问题来引出Ajax
点击验证用户名, 使用 ajax 方式, 服务端验证该用户名是否已经占用了, 如果该用户已经占用, 以 json 格式返回该用户信息
<script type="text/javascript">window.onload = function () { //页面加载后执行functionvar checkButton = document.getElementById("checkButton");//给checkButton绑定onclickcheckButton.onclick = function () {//1. 创建XMLHttpRequest对象(!!!) [ajax引擎对象]var xhr = new XMLHttpRequest();// 获取用户填写的用户名var uname = document.getElementById("uname").value;//2. 准备发送指定数据 open, send //(1)"GET" 请求方式可以 GET/POST//(2)"/ajax/checkUserServlet?username=" + uname 就是 url//(3)true , 表示异步发送xhr.open("GET", "/ajax/checkUserServlet?uname=" + uname, true);//在send函数调用前,给XMLHttpRequest 绑定一个事件onreadystatechange//该事件表示,可以去指定一个函数,当数据变化,会触发onreadystatechange// 每当 xhr对象readyState 改变时,就会触发 onreadystatechange 事件xhr.onreadystatechange = function () {//如果请求已完成,且响应已就绪, 并且状态码是200if (xhr.readyState == 4 && xhr.status == 200) {//把返回的jon数据,显示在divdocument.getElementById("div1").innerHTML = xhr.responseText;//console.log("xhr=", xhr)var responseText = xhr.responseText;//console.log("返回的信息=" + responseText); //3. 真正的发送ajax请求[http请求]// 老韩再说明如果你POST 请求,再send("发送的数据")xhr.send();}}</script>
3 原生 Ajax 请求问题分析
- 编写原生的 Ajax 要写很多的代码,还要考虑浏览器兼容问题,使用不方便。
- 在实际工作中,一般使用 JavaScript 的库(比如 Jquery) 发送 Ajax 请求,从而解决这个问题
❄️3. JQuery 的 Ajax 请求
JQuery Ajax 操作方法
1.在线文档:
https://www.w3school.com.cn/jquery/jquery_ajax_get_post.asp

2.$.ajax 方法
$.ajax常用参数
url:请求的地址
type :请求的方式 get 或 post
data :发送到服务器的数据。将自动转换为请求字符串格式
success:成功的回调函数
error:失败后的回调函数
dataType:返回的数据类型 常用 json 或 text- 说明:完整的参数参看手册
3.$.get 请求和$.post 请求
$.get和$.post常用参数
url:请求的 URL 地址
data:请求发送到服务器的数据
success:成功时回调函数
type:返回内容格式,xml, html, script, json, text- 说明:
$.get和$.post底层还是使用$.ajax()方法来实现异步请求
4.$.getJSON
$.getJSON常用参数
url:请求发送的哪个 URL
data:请求发送到服务器的数据
success:请求成功时运行的函数- 说明:
$.getJSON底层使用$.ajax()方法来实现异步请求
🌍三. 线程数据共享和安全 -ThreadLocal
❄️1. ThreadLocal基本介绍
1.什么是 ThreadLocal
- ThreadLocal 的作用,可以实现在同一个线程数据共享, 从而解决多线程数据安全问题.
- ThreadLocal 可以给当前线程关联一个数据(普通变量、对象、数组)set 方法 [源码!]
- ThreadLocal 可以像 Map 一样存取数据,key 为当前线程, get 方法
- 每一个 ThreadLocal 对象,只能为当前线程关联一个数据,如果要为当前线程关联多个数据,就需要使用多个 ThreadLocal 对象实例
- 每个 ThreadLocal 对象实例定义的时候,一般为 static 类型
- ThreadLocal 中保存数据,在线程销毁后,会自动释放
- 类图

ThreadLocal<Object> threadLocal = new ThreadLocal<>();
threadLocal.set(dog);
如果希望在同一个线程共享多个对象/数据,就在创建一个 ThreadLocal 对象
//threadLocal2.set(pig);
❄️2. 源码分析
1.set 源码分析 只要明白这个机制,后面的 set get 全部通透
public void set(T value) {//获取当前线程
Thread t = Thread.currentThread();
//获取当前线程的 ThreadLocal.ThreadLocalMap 属性 threadLocals , 类型是 ThreadLocal 的静态内部类
//threadLocals 有 一 个 属 性 Entry[], 类 型
ThreadLocal.ThreadLocalMap.Entry//k-> ThreadLocal 对象 v-> 值
ThreadLocalMap map = getMap(t);if (map != null)
map.set(this, value);//存放这里的 this 就是 ThreadLocal, 可以debug 源码,一目了然
else
createMap(t, value);//创建}
说明:
1.ThreadLocalMap 对象是和当前 Thread 对象的绑定的属性
2.ThreadLocalMap 对象含有 Entry[] table; 这个 Entry(K,V)
3.这个 key 就是 ThreadLocal 对象, V 就是你要在放入的对象,比如 dog
4.当执行了 了 threadLocal.set(dog) 后,内存布局图为 [看图]
2.Debug 源码图,非常重要


这里涉及到的弱引用,涉及到知识点很多,暂不深入.
结尾:
随着对JSON与Ajax技术的深入探讨,我们不仅揭开了数据交换与异步请求的神秘面纱,也领略了它们在现代Web开发中的巨大作用。这两者的结合,不仅提高了数据处理的效率,也优化了用户的交互体验。
希望通过本文,你能更加熟练地运用JSON与Ajax,为构建更加出色的Web应用贡献力量。让我们一起在技术的道路上,不断前行,共创辉煌。
相关文章:
【JavaWeb12】数据交换与异步请求:JSON与Ajax的绝妙搭配是否塑造了Web的交互革命?
文章目录 🌍一. 数据交换--JSON❄️1. JSON介绍❄️2. JSON 快速入门❄️3. JSON 对象和字符串对象转换❄️4. JSON 在 java 中使用❄️5. 代码演示 🌍二. 异步请求--Ajax❄️1. 基本介绍❄️2. JavaScript 原生 Ajax 请求❄️3. JQuery 的 Ajax 请求 &a…...
Ubuntu 查看mysql用户和数据库
在Ubuntu系统中,你可以使用以下MySQL命令来查看用户和数据库的信息。请确保你已经安装了MySQL服务器,并且你具有足够的权限(如root用户权限)来执行这些命令。 查看所有数据库 要查看MySQL服务器上的所有数据库,可以使…...
数据库服务器和应用服务器的区别是什么?
在当今的互联网社会中,各个行业中的业务都离不来网络科技,而作为互联网基础设施的服务器,受到了各大行业的广泛应用,同时根据所承担职责的不同,可以将服务器分为数据库服务器和应用服务器,本文就来概括一下…...
初级银行从业考试真题
2023 年 6 月初级银行从业考试真题 法律法规 单选题 1.按照《中华人民共和国反洗钱法》的规定,金融机构所建立的客户身份资料和客户交易信息在业务关系或交易结束后至少 保存期限为()年。 A.5 B.3 C.10 D.2 参考答案:A 2.物价稳定是要保持()的大体稳定,避免出现高…...
普通转录组RNASeq生物信息流程
探序基因肿瘤研究院 整理 比对工具:HISAT2,下载源代码编译安装或者二进制文件 定量工具:feactureCounts,下载地址:The Subread package 参考基因组:NCBI的GCF_000001405.40_GRCh38.p14_genomic.fna.g…...
nginx容器配置fastapi服务失败
问题描述: Linux虚拟机中启动了一个fastapi服务器(8000端口),希望能通过nginx容器设置代理使得前端代码可以调用这个接口,但是访问时报错(状态码:502)。nginx配置如下: l…...
网页制作06-html,css,javascript初认识のhtml如何建立超链接
超链接有外部链接、电子邮件链接、锚点链接、空链接、脚本链接 一、内部链接 与自身网站页面有关的链接被称为内部链接 1、创建内部链接 1)语法: <a href"链接地址"> …… </a> 2)举例应用: 3…...
代码讲解系列-CV(七)——前沿论文复现
文章目录 一、论文速览1.1 确定baseline1.2 DepthMaster: Taming Diffusion Models for Monocular Depth Estimation 二、数据环境搭建2.1 环境搭建2.2 数据权重 三、推理debug3.1 单图推理3.2 数据集验证 四、模型训练4.1 数据读取4.2 训练流程 五、作业 一、论文速览 1.1 确…...
3DGS(三维高斯散射)与SLAM技术结合的应用
3DGS(三维高斯散射)与SLAM(即时定位与地图构建)技术的结合,为动态环境感知、高效场景建模与实时渲染提供了新的可能性。以下从技术融合原理、应用场景、优势挑战及典型案例展开分析: 一、核心融合原理 1. …...
数据库面试知识点总结
目录 1. MySQL 基础题1.1 执行⼀条 select / update 语句,在 MySQL 中发生了什么?1.2 MySQL 一行记录是怎么存储的? 2. 三大范式3. 数据库引擎3.1 Innodb3.2 MyISAM 4. 数据库索引4.1 索引分类4.2 索引优缺点4.3 索引使用场景4.4 优化索引方法…...
1.25作业
1easytornado SSTI——tornado模板 hints.txt:在/fllllllllllllag里;计算filehash的方法(需要cookie_secret,对filename进行md5拼接再第二次md5) ?filename/hints.txt&filehash{ {2*3}},跳转到另一个页面 存在且…...
Power Query M函数
文章目录 三、PQ高阶技能:M函数3.1 M函数基本概念3.1.1 表达式和值3.1.2 计算3.1.3 运算符3.1.4 函数3.1.5 元数据3.1.6 Let 表达式3.1.6 If 表达式3.1.7 Error 3.2 自定义M函数3.2.1 语法3.2.2 调用定义好的自定义函数3.2.3 直接调用自定义函数3.2.4 自定义函数&am…...
python argparse 解析命令行参数
可选参数 带 - 或者 -- 的参数都是可选参数,如果命令行不输入,得到的结果是 None 参数名只能使用下划线,不能使用中划线 default: 设置默认值 action: 默认是 store 方法,常用的是 store_true 命令行出…...
使用西门子 PLC(以 S7 - 1200 为例)编写梯形图程序来根据转速计算瞬时流量和累计流量的详细步骤
以下是一个使用西门子 PLC(以 S7 - 1200 为例)编写梯形图程序来根据转速计算瞬时流量和累计流量的详细步骤,同时会考虑与昆仑通泰触摸屏的交互。该程序支持 4 - 20 毫安信号输入和另一种模拟的手动输入方式。 需求理解 流量计算原理&#x…...
【网络编程】服务器模型(二):并发服务器模型(多线程)和 I/O 复用服务器(select / epoll)
一、多线程并发服务器 在 高并发的 TCP 服务器 中,单线程或 fork() 多进程 方式会导致 资源浪费和性能瓶颈。因此,我们可以使用 多线程 来高效处理多个客户端的连接。 承接上文中的多进程并发服务器,代码优化目标: 1.使用 pthr…...
一文读懂大模型文件后缀名,解锁 AI 世界的密码
在大模型的世界里,各种文件后缀名就像一把把钥匙,打开通往不同应用和功能的大门。今天,咱们就来聊聊那些常见又重要的大模型文件后缀名。 safetensors:安全与高效的守护者 safetensors 是一种基于 Python 的序列化格式ÿ…...
探索 Peewee:轻量级 Python ORM 简明指南
文章目录 探索 Peewee:轻量级 Python ORM 简明指南主要特点:安装:使用示例:1. 定义模型:2. 初始化数据库:3. 数据操作(增、查、改、删):4. 查询构建器:5. 迁移…...
生产者标签(Producer Tag) 和 普通连接(显式或隐式连接)的区别:
在 EtherNet/IP 的通信架构中,生产者标签(Producer Tag) 和 普通连接(显式或隐式连接)的区别主要体现在 通信模式、实时性、数据流向 和 资源管理 上。以下是详细对比: 1. 定义与用途 类型生产者标签&…...
【速写】解码与kv-cache的简单细节
问题:在使用transformers调用huggingface生成式模型时,我们可以通过model.generate_ids来获取模型生成的若干id,那么我应该如何查看这些生成id对应的logits大小(即生成概率) 在Hugging Face的Transformers库中&#x…...
Mac【卸载 Python】 - 3.12.2
一、若使用官方安装包安装 1. 删除 Python 框架 Python 官方安装包会将 Python 安装到 /Library/Frameworks/Python.framework/Versions/3.12 目录下。你可以在终端中使用以下命令删除该目录: sudo rm -rf /Library/Frameworks/Python.framework/Versions/3.12 …...
自学Java-AI结合GUI开发一个石头迷阵的游戏
自学Java-AI结合GUI开发一个石头迷阵的游戏 准备环节1、创建石头迷阵的界面2、打乱顺序3、控制上下左右移动4、判断是否通关5、统计移动步骤,重启游戏6、拓展问题 准备环节 技术: 1、GUI界面编程 2、二维数组 3、程序流程控制 4、面向对象编程 ∙ \bulle…...
Liunx(CentOS-6-x86_64)系统安装MySql(5.6.50)
一:安装Liunx(CentOS-6-x86_64) 安装Liunx(CentOS-6-x86_64) 二:下载MySql(5.6.50) MySql下载官网 二:安装MySql 2.1 将mysql上传到Liunx 文件地址 /usr/local/ 2…...
Java Web开发实战与项目——开发一个在线论坛系统
在线论坛系统是一个常见的Web应用,通常具有用户注册、帖子发布、评论互动、消息推送等基本功能。开发这样一个系统,既涉及到前后端的技术栈选择,也需要考虑性能、扩展性等实际问题。本文将从设计论坛模块、实现消息推送与实时更新功能、以及优…...
ubuntu24.04无法安装向日葵,提示依赖libgconf-2-4怎么办?
在向日葵官方下载的deb包,目前是SunloginClient_15.2.0.63062_amd64.deb,执行安装代码,如下: sudo < /span > dpkg< /span > -i< /span > SunloginClient_15< /span >.2< /span >.0< /span >…...
C++ 设计模式-访问者模式
C++访问者模式 一、模式痛点:当if-else成为维护噩梦 开发动物园管理系统,最初的需求很简单: class Animal {}; class Cat : public Animal {}; class Dog : public Animal {};// 处理动物叫声 void makeSound(Animal* a) {if (auto c = dynamic_cast<Cat*>(a)) {st…...
Kubernetes 使用 Kube-Prometheus 构建指标监控 +飞书告警
1 介绍 Prometheus Operator 为 Kubernetes 提供了对 Prometheus 机器相关监控组件的本地部署和管理方案,该项目的目的是为了简化和自动化基于 Prometheus 的监控栈配置,主要包括以下几个功能: Kubernetes 自定义资源:使用 Kube…...
《Operating System Concepts》阅读笔记:p62-p75
《Operating System Concepts》学习第 10 天,p62-p75 总结,总计 14 页。 一、技术总结 1. system call (1) 定义 The primary interface between processes and the operating system, providing a means to invoke services made available by th…...
Node.js中不支持require和import两种导入模块的混用
最近在整理Node.js相关的知识点,发现通过Node.js支持的两个模块导入语句require和import在同时使用时会发生错误,而且错误非常诡异。 例如,在先使用require导入模块,在使用import导入模块时,出现require无法识别&#…...
WPF的页面设计和实用功能实现
目录 一、TextBlock和TextBox 1. 在TextBlock中实时显示当前时间 二、ListView 1.ListView显示数据 三、ComboBox 1. ComboBox和CheckBox组合实现下拉框多选 四、Button 1. 设计Button按钮的边框为圆角,并对指针悬停时的颜色进行设置 一、TextBlock和TextBox…...
window安装MySQL5.7
1、下载MySQL5.7.24 浏览器打开: https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-winx64.zip 2、解压缩 下载下来的是一个压缩包,解压到你想放到的目录下面,我放的是“C:\MySQL” 3、配置MySQL环境变量 计算机右键 - 属性 …...

