Vue2.7.14下的单元测试环境搭建
Vue2.7.14下的单元测试环境搭建依赖
vue”: “^2.7.14”,
“@babel/preset-env”: “~7.24.5”,
“babel-core”: “~6.26.3”,
“@vue/compiler-dom”: “~3.4.26”,
“@vue/compiler-dom”: “~3.4.26”,
“@vue/test-utils”: “~1.3.6”,
“babel-jest”: “~29.7.0”,
“babel-preset-env”: “~1.7.0”,
“jest”: “~29.7.0”,
“jest-environment-jsdom”: “~29.7.0”,
“jest-serializer-vue”: “~3.1.0”,
“jest-transform-stub”: “~2.0.0”,
“jsdom”: “16.7.0”,
“vue-jest”: “~3.0.7”,
“vue-server-renderer”: “2.7.16”,
安装依赖:
npm install @babel/preset-env bab ...
从SSR到ESR的前端渲染方式探索
从SSR到ESR的前端渲染方式探索背景对于 web 页面来说,首跳场景(例如 SEO、付费引流)的性能普遍比二跳场景下要差。原因有多种,主要是首跳用户在连接复用,和本地资源缓存利用方面,有很大的劣势。首跳场景下,很多在端上的优化手段(预加载,预执行,预渲染等)无法实施。
在客户端缓存能力无法利用的情况下,利用 cdn 距离用户近的特性,可以结合缓存做一些性能优化。
SSR(Server Side Rendering)为了性能优化考虑,我们一般都会通过服务端渲染(SSR) ,将首屏动态内容直接服务端输出。
这种方式的优点是一次 html 返回即可包含页面主体内容,不需要浏览器二次请求接口后再用 js 渲染。但这种方式的缺点也比较明显,对于距离服务端远,或者服务端处理时间较长的场景,用户会看到较长时间的白屏。而且即使 html 返回完成了,用户并不会立即看到内容,页面还需要加载前置的 js,css 等资源后,才能看到内容。
缺点:
⾮常依赖服务端的处理时间
需要加载js 、css 、图⽚等静态资源, ⽩屏时间⻓
CSR(Client Side Rendering)为了减少白屏时间,考 ...
前端版本更新提示技术方案调研与实现
前端版本更新提示技术方案调研与实现需求场景项目迭代频繁,如果用户打网页后,长时间不关闭对应标签页,也不刷新页面,而此期间有新的版本已经上线了,需要用户手动刷新,不然会出现一直使用旧版本以及会出现一些不可预知的错误
实现思路
采取定时检查,定期向服务器发送请求,检查是否有新版本可用。
拦截页面的网络请求,并且在发现有新版本时,提示用户更新或者自动更新。
通过WebSocket连接实时接收到服务器的推送消息,如果有新版本可用,服务器可以通过WebSocket发送通知给客户端,提醒用户刷新页面。
主流实现方案方案一 通过 ETag 获取应用版本"ETag"(Entity Tag)是HTTP标头的一部分,用于标识网络资源的版本。它通常与HTTP缓存机制一起使用,以便客户端可以在后续请求中使用ETag来检查资源是否已经发生了变化。
ETag的生成
对于静态文件(如css、js、图片等),ETag的生成策略是:文件大小的16进制+修改时间
对于字符串或Buffer,ETag的生成策略是:字符串/Buffer长度的16进制+对应的hash值
代码实现我们可以通 ...
Ant Design Vue 解决表单验证+多选框引发的输入值不生效问题
Ant Design Vue 解决表单验证+多选框引发的输入值不生效问题开发环境
Vue 2
Ant-Design-Vue 1.7.1
问题复现一个弹框组件采用了Ant Design Vue,包含一个多选框和一个输入框,整体格式为:
<a-form-model ref="ruleForm" :model="form" :rules="rules" :label-col="labelCol" :wrapper-col="wrapperCol"> <a-form-model-item prop="nation"> <a-select mode="multiple" v-model="nation" :options="regionOptions" @change ...
计算机网络考纲复习笔记
计算机网络考纲复习第一章 计算机网络和英特网:计算机网络的定义:两台以上具有独立操作系统的计算机通过某些介质连接成的相互共享软硬件资源的集合体。
协议的定义和基本要素:定义了两个或多个通信实体间所交换报文的格式和次序,以及在报文发送和/或接收或者其他事件方面所采取的行动(响应)。
基本要素:
语法:报文格式
语义:各字段的含义
同步(时序):报文传输的先后顺序
Internet的构成描述:具体构成:
硬件上:
数以亿计的计算互连设备、通信链路(link)、分组(packet)交换。
服务上:
提供网络应用基础架构、为分布式应用程序提供通信服务接口(无连接服务和面向连接服务)。
网络交换方式:
电路交换
多路复用(Multiple Access)
分片分配到会话
分片没有被会话使用的情况下,分片空载(不共享)
电路级性能(有保证)要求呼叫建立--建立一个专门的端到端线路(意味着每个链路上预留一个线路)
(1)预先建立连接,预留资源,发送方以恒定速度发送数据
(2)电路和通信链路的区别
(3)链路带宽和一条电路的传输速率的关系
(4)频分多路复用和时分多路复用(会计算)
(5 ...
Java学习笔记
Java学习笔记一、基本格式1.类类是Java的基本结构,一个程序可以包含一个或多个类
类的申明:
/*修饰符class类名{ 程序代码}*/public class HelloWorld{ //声明一个名为HelloWorld的类}
2.修饰符修饰符用于指定数据、方法、类的属性以及用法
修饰符示例:
public class HelloWorld{ //public修饰为公有的 public static void main(String[]args){ //static修饰为静态的 }}
3.块Java中使用左大括号({)和右大括号(})将语句编组,组中的语句称为代码块或块语句
{ int i1 = 10; int i2 = 20;}
二、注释1.单行注释//xxxx
2.多行注释/* xxx*/
注:多行注释中可以嵌套单行注释,但多行注释中不能嵌套多行注释
三、基 ...
前端学习笔记(部分)
前端笔记:h5笔记:
英文状态下输入!可以直接跳出格式
UTF-8:万国码
head第二行没用,可以删去。
title内为网页名称
body内填网页内容
这是单标签 主要用于申明属性 主要用于输入内容
lang 后面写语言 en代表英语 可以直接删去
段落标签:- 段落和换行标签:<\p>
水平线分割标签
斜体
加粗
结构标签 、
图片标签:输入image src后面填写路径 alt后面是若图片出现异常无法显示而显示的文本 后面可以跟width设定宽度 height设置高度
超链接:a标签 herf后面跟网址 标签内内容填写超链接显示文字或者标签嵌套加入image标签做成图片超链接
锚链接:使用超链接实现 只是跳转到内部 所以跳转目标出设定一个id 然后a标签herf后写“#id名”即可
功能性发邮件/打电话:也是以超链接形式实现 herf后写mailto:邮箱地址 实现发邮件 herf后写tel:电话号码实现打电话
块级元素:独占一行,换行显示,可以设置宽高,块可以套块和行。
行级元素:在行内显示,内容撑开宽高,不可以设置 ...
操作系统期末复习总结
操作系统期末复习1、进程和线程的概念典型的进程定义有:(1)进程是程序的一次执行。(2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。(3)进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
2、进程的基本状态及状态转换的原因
状态转换: ① 空 ->新状态 新创建的进程首先处于新状态。
② 新状态 ->就绪状态 当系统允许增加就绪进程时,操作系统接纳新建状态进程,将它变为就绪状态,插入就绪队列中。
③ 就绪状态 -> 执行状态 当处理机空闲时,将从就绪队列中选择一个进程执行,该选择过程称为进程调度,或将处理机分派给一个进程,该进程状态从就绪转变为执行。
④ 执行状态 -> 终止状态 执行状态的进程执行完毕,或出现诸如访问地址越界、非法指令等错误,而被异常结束,则进程从执行状态转换为终止状态。
⑤ 执行状态 -> 就绪状态 分时系统中,时间片用完,或优先级高的进程到来,将中断较低优先级进程的执行。进程从执行状态转变为就绪状态,等待下一次调度。
⑥ 执行状态 -> 阻塞状态 执行进程需要等待某事 ...