发布了文章2023-09-09
由前文内容浏览器工作原理与事件循环引出的问题:当我们的页面足够复杂,足够大时,如何使页面更快展示内容呢?现在在本文来做一次抛砖引玉。若有其他加载优化,希望评论区不吝赐教。 首先,我们需要先了解的是浏览器网络进程和渲染进程。(...
发布了文章2023-09-02
当浏览器的网络线程收到 HTML 文档后,会产生一个渲染任务,并将其传递给渲染主线程的消息队列。在事件循环机制的作用下,渲染主线程取出消息队列中的渲染任务,开启渲染流程。
发布了文章2023-09-02
现代浏览器的复杂程度如同操作系统,只有日益完善的机制才能应对现今越来越复杂的网页交互。笔者前文曾述JS单线程引起的思考,如今看来错漏百出,知识内容早已过时。基于现在的知识积累,如今再发一文作为勘误,希望能加深印象,有所收货。 ...
发布了文章2023-06-01
基于 XMLHttpRequest 服务来执行 HTTP 请求,支持丰富的配置,支持 Promise,支持浏览器端和 Node.js 端。自Vue2.0起,尤大宣布取消对 vue-resource 的官方推荐,转而推荐 axios。现在 axios 已经成为大部分 Vue 开发者的首选。
发布了文章2023-03-14
最近上头让我写个项目简单的官方网站,需求很简单,有前后端,前端负责获取要跳转的外链进行跳转和介绍视频的播放,后端负责传回外链和需要播放的视频。我拿到需求,想了想,这样子的需求就用不着数据库了,后端写个配置文件,传回固定的数据就可以了,...
发布了文章2023-02-24
Web Worker 的作用,就是为 JavaScript 创造多线程环境,允许主线程创建 Worker 线程,将一些任务分配给后者运行。在主线程运行的同时,Worker 线程在后台运行,两者互不干扰。等到 Worker 线程完成计算任务,再把结果返回给主线程。这样的好处是,一些...
发布了文章2023-01-13
如果没有明确的指定类型,那么 TypeScript 会依照类型推论(Type Inference)的规则推断出一个类型。 如果定义的时候没有赋值,不管之后有没有赋值,都会被推断成 any 类型而完全不被类型检查:
发布了文章2022-12-28
*TypeScript 变量声明TypeScript变量的命名规则:变量名称可以包含数字和字母。除了下划线 _ 和美元 $ 符号外,不能包含其他特殊字符,包括空格。变量名不能以数字开头。变量使用前必须先声明,我们可以使用 var 来声明变量。我们可以使用以下四种方式来声明变量:1....
发布了文章2022-10-21
之前项目需要为其增加主题换色功能,接手这个需求后,就开始分析项目的代码内容。我把他们主要分成两个大类,一是elementUI下的组件,二是自定义模板或者组件。这两类都需要对其样式进行切换来达到换色效果。为了做到尽可能的优雅,最好是只改变一处地方...
发布了文章2022-09-26
断点续传的原理在于前端/服务端需要记住已上传的切片,这样下次上传就可以跳过之前已上传的部分,有两种方案实现记忆的功能
发布了文章2022-09-12
WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工(full-duplex)通讯的协议。没有了 Request 和 Response 的概念,两者地位完全平等,连接一旦建立,就建立了真持久性连接,双方可以通过WebSocket随时向对方发送数据。
发布了文章2022-08-09
最近做的是后端的低代码平台构建工作,功能界面主体是类Eclipse风格的,其中文件夹内创建内容可以通过可视化操作创建功能代码,也可以后期编辑已生成的代码。因为后者涉及到网页版编辑器,所以我最近就一直和monaco-editor打交道了。 首先就...
发布了文章2022-06-13
npm install 到npm run xxx深度解读详见:[链接]1.运行npm install后发生了什么?npm 模块安装机制:发出npm install命令查询node_modules目录之中是否已经存在指定模块:若存在,不再重新安装若不存在npm 向 registry 查询模块压缩包的网址下载压缩包,存放在根目录...
发布了文章2022-06-13
1.如何优化首页的加载速度?vue 首页白屏是什么问题引起的?如何解决呢?原因:需要下载静态资源(如:js css img)spa 应用 dom 树是由 js 执行生成的,需要时间解决:减少 http/1.1 请求次数减少静态资源包大小合理拆分库用 gzip 压缩(详细可看:前端性能优化gzip...
发布了文章2022-06-06
隐式转换是指在JavaScript中,当运算符在运算时,如果两边数据不统一,CPU就无法计算,这时我们编译器会自动将运算符两边的数据做一个数据类型转换,转成一样的数据类型再计算。这种无需程序员手动转换,而由编译器自动转换的方式就称为隐式转换。
发布了文章2022-06-01
在之前的文章中我们都是使用 <transition> 组件来实现过渡, 其主要用于单个节点、或同一时间渲染多个节点中的一个这两种情况。而对于整个列表(比如使用 v-for)的过渡,则需要使用本文介绍的 <transition-group> 组件。
发布了文章2022-06-01
三、多个元素、组件的过渡1,多个元素的过渡(1)对于原生标签我们可以使用 v-if/v-else 实现多元素过渡。下面是一个列表显示、数据空提示之间的过渡: {代码...} (2)如果有两个以上的元素过渡可以这么写: {代码...} {代码...} (3)在一些场景中,也可以通过给同...
发布了文章2022-06-01
1,基本介绍 我们可以在 transition 属性中声明 JavaScript 钩子,这些钩子函数可以结合 CSS transitions/animations 使用,也可以单独使用。
发布了文章2022-05-31
1,<transition> 组件(1)如果某个元素或者组件需要使用过渡动画效果,只需使用 vue 提供的 <transition> 组件将其包裹起来封装成过渡组件。(2)Vue 只有在插入,更新或者移除 DOM 元素时才会应用过渡效果,例如: 1. v-if(条...
发布了文章2022-05-30
1.使用{{ }}来填充html的text时异步操作容易出现数据未及时传入导致页面出现{{}}的问题,这个时候可以使用v-cloak指令来隐藏。