自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风天语的博客

风云乱世枭雄起,唯有一人称英雄。善事善名传五域,大仁大义救众生。今朝斩命还世人,五域共颂大爱名。才情横溢天资卓,持剑登顶必成尊。

  • 博客(60)
  • 收藏
  • 关注

原创 web worker

在很长的一段时间内,JavaScript都是一门单线程语言,所以在JavaScript中任何会导致页面阻塞的操作都是异步运行的,虽然异步能最大限度的保证用户的浏览体验,但如果在同步代码中执行时间过长的话还是会导致页面假死

2024-06-22 20:32:17 616

原创 websocket

socket,中文名称套接字,可以将其理解成一个抽象层,用于在网络上执行进程间的通信。它为应用程序提供了发送和接收数据的机制,通过ip和接口来标识网络中唯一的位置我们平时最常用的就是基于TCP的流套接字,websocket也是基于此socket最大的特点就是服务器和客户端可以任意进行通信,通信内容不限制于格式,也不限于发送和接收方,除非某一方主动断开,否则socket会一直保持连接状态。

2024-06-22 20:01:32 1146

原创 vue常见优化手段(下)

下篇主要内容为开发vue项目时的风格规范,良好的风格规范可以规避小纠结于反模式,同时提高项目的可读性和可维护性以及能带来良好的开发体验,上篇主要提及了vue项目的最佳实践,最佳实践可以帮助我们规避错误。

2024-06-21 09:39:12 569

原创 vue常见优化手段(上)

上篇主要提及开发vue.js项目中的最佳实践,最佳实践通常可以规避错误,同时大幅提高应用的性能,下篇主要提及了开发vue.js项目中的风格规范,良好的风格规范可以改善可读性和开发体验。

2024-06-21 09:38:48 725

原创 虚拟DOM的比较

将虚拟DOM渲染成DOM,这就是patch的作用在vue运行的时候会生成新旧两个虚拟DOM树,通过比较这两棵DOM树,我们就能针对性的修改真实DOM事实上,我们大可以在每次比较两棵DOM树的时候删除现有的DOM结构,然后根据新的虚拟DOM来渲染最新的DOM,但这样做的结果就是性能开销过大,所以vue并没有采取这种方式,vue会比对新旧两个vnode之间有哪些不同,然后根据对比结果找出需要更新的节点进行更新。

2024-06-20 09:03:03 1353

原创 虚拟DOM

理论上,用户的任何操作都有可能造成状态的改变,当状态改变时我们就需要重新渲染,直接操作DOM向来是简单且直接的,我们大可以将现有的DOM直接删除,然后重新根据现有状态来生成一个DOM,但是访问DOM是非常昂贵的。在Web开发的早期,因为网页的展现十分简陋,我们所维护的状态也十分的简单,我们大可以直接操作DOM来进行开发,然而随着时代的发展,我们所开发的web也变的十分复杂,维护的状态也十分的多,DOM操作也十分频繁。幸运的是,现代的主流框架,如vue,react,angular等都支持声明式操作DOM。

2024-06-20 09:02:14 677

原创 web标准与浏览器前缀

CSS1的规范发表于1996年,内容十分的少,用一个html就能完全表示,到了1998年,CSS2问世,它带来了更严谨的语法,更丰富的样式,此时的CSS已经十分复杂,靠人脑已无法完全记忆,人们意识到,此时的CSS已无法作为一个规范来发展,庞杂的内容导致人们难以修改和阅读,每个CSS属性都必须具备两个独立实现,但这几乎是不可能的。取而代之的是,这些实验性特性需要通过配置开关来启用,可以宣布的是,浏览器前缀已经彻底成为了一个失败的产物,不过我们还需要很长的时间,才能从浏览器前缀所引发的涟漪效应中解脱出来。

2024-06-19 09:35:02 1023

原创 HTML文档声明

GML是一个标记语言,通过特定的标识包裹数据,使得计算机能够识别和处理信息。在GML的基础上,SGML被开发出来,它是一种极为严格的文件描述语言SGML由语法定义、DTD以及文件实例这三个部分构成,由于SGML的规范非常严格,文档达到了500多页,因此它被认为难以学习、使用和实现,基于这些原因,人们在SGML的基础上发展出了其他更易用的标记语言。

2024-06-19 09:33:43 624

原创 针对indexedDB的简易封装

我们首先创建一个DBManager类,通过这个类new出来的对象管理一个数据库具体关于indexedDB的相关内容可以看我的这篇博客我们首先需要打开数据库,打开数据库需要数据库名和该数据库的版本在constructor中我们先初始化数据库相关信息,dbName为该对象管理的数据库的数据库名,version为该数据库的版本,db为该数据库的IDBDatabase对象现在我们开始实现openDB方法因为打开数据库涉及i/o操作,所以是异步的,所以我们需要返回一个Promise。

2024-06-18 08:26:10 819

原创 indexedDB

indexedDB是一种现代浏览器持久化数据存储解决方案, 可以把它理解成用户浏览器端的数据库,它可以存储包括文件/二进制大型对象blobs等大量结构化数据,通过索引来实现对数据的高性能检索indexeddb内部的数据均是通过键值对的形式存储,所以不同于其他关系型数据库,不支持sql语句,indexeddb更类似于nosql数据库,通过提供的大量api来实现数据的增删改查需要注意的是,因为indexedDB中的很多api涉及i/o操作,所以是异步的。

2024-06-18 08:25:06 681

原创 HTML语义化

HTML语义化指的是在创建HTML页面时,使用合适的标签来准确描述内容的意义和结构在HTML页面的构建过程中,语义化扮演着至关重要的角色。它涉及到使用合适的HTML标签来准确地表达内容的意义和组织结构。这不仅仅是关于标签的选择,更是一种确保内容正确表达的实践。

2024-06-17 13:18:03 543

原创 HTML中的资源提示关键词

如果该script元素的src属性为空,则defer和async属性不生效如果该script元素的type属性为空或者为一个JavaScript MIME类型时,该script为普通脚本,普通脚本会受到defer和async的影响,但这些的前提为src属性不为空如果该script元素的type属性为module时,该script为JavaScript模块脚本,该类型脚本不受defer的影响,但会受到async的影响,与src属性无关。

2024-06-17 13:16:36 843

原创 super与this

我们可能会对一个问题感到好奇:为什么在派生类中,我们需要在调用之前调用。我们通常将其视为一种规范,却很少深入探究这个规范的真正意义。许多人认为不过是之前继承方式的语法糖。但实际上,这种看法是不准确的。要真正理解的必要性,我们必须探究中继承机制的内部工作原理。

2024-04-27 21:28:06 930 4

原创 JS手写set与map

但是Object.is有一个问题,在Object.is中+0和-0被认为是两个不同的东西,所以我们需要将Object.is再封装一层,这个封装可有可无,但set内部是针对Object.is封装了的。set是一个没有重复元素的集合,事实上我们无法完全的使用js来模拟出set的全部功能,因为浏览器原生的set底层是使用c++实现,能直接访问内存,所以我们只能实现set的一部分功能。在set中我们只需要针对constructor中传入的对象进行判断,而在map中我们需要针对对象中的各个元素进行判断是否可迭代。

2024-04-25 23:31:13 739 2

原创 js深浅拷贝

我们知道,像对象这种复杂数据类型,在定义它的时候我们所指定的变量只会存储这个对象的地址,我们通过这个地址来寻找对象并且操作它,而将这个变量赋值给其他变量时,复制的也仅仅只是地址,对象本身并没有被复制,当我们通过某一个变量去修改对象的成员时,另一个对它保持引用的变量也会同步的更新。我们定义一个deepClone函数,这个函数会传入一个值,我们并确定现在传入的是什么值,如果是一个基本类型的值我们需要直接将其返回,如果是一个复杂数据类型的值我们需要将其深度克隆之后返回一个新对象。

2024-04-25 23:29:47 968 3

原创 JS包管理

包是一个或多个js的集合,一个工程可以是包,通俗的讲,我们在项目中所使用到的依赖就是包,依赖可以是一个完整的框架,如Vue或React,也可以是一个很小的工具库,如mockJS,jQuery,我们通常将这些由别人编写,我们使用的包叫做第三方库。显而易见的是,每个包可能都会或多或少的依赖其他第三方库,这些被依赖的第三方库可能本身也会依赖其他第三方库,如果去手动维护这些依赖关系是十分复杂的,而包管理器就能自动帮助我们维护这些依赖关系。都需要使用到的,在打包的时候都需要被囊括进去。中,包有两种安装方式,一种是。

2024-04-24 17:59:05 995 2

原创 js手写call、bind、apply

手写call,apply,bind

2024-04-24 17:57:40 787

原创 URL解析

URL,URI,URN,相对URL,URL转义

2024-04-22 20:54:17 797

原创 JS模块化

在ES6之前实现模块化,CMJ,AMD,ESM,export,require,import,模块,模块化

2024-04-22 20:50:56 956

原创 C语言实现循环队列

相较于使用链表实现,通过数组实现的队列容量是固定的,在容量到达上限时必须经过扩容步骤才能继续存储,另外被出列的元素也无法像链表队列里出列的元素一样被free释放。在循环队列实现之后我们的队列解决了假溢出的问题,但当队列空间真的被占满,遇到了真溢出的情况,我们想要队列自动扩容的话怎么解决呢。appendQueue函数会将指定的元素放入指定的队列中,当队列长度不足时队列会自动扩容。appendQueue函数会将指定的元素放入指定的队列中,当队列长度不足时队列会自动扩容。

2024-04-17 14:17:47 676

原创 js通过Object.defineProperty实现数据响应式

数据响应式,依赖收集,派发更新,属性描述符,get,set,Object.defineProperty

2024-04-08 00:36:44 625 4

原创 CSS样式计算

CSS样式计算,用户代理样式表,层叠冲突,CSS选择器权重,继承

2024-04-05 23:44:28 920 2

原创 js中的事件循环

JS事件循环,浏览器进程模型,异步,消息队列

2024-04-03 14:46:09 974 2

原创 js的Proxy和Reflect

js的Proxy和Reflect,对象的基本操作,ES6

2024-04-02 14:49:38 1059 2

原创 js手写Promise(下)

js手写Promise,resolve,reject,catch,all,race

2024-02-08 15:17:07 1035 1

原创 js手写Promise(上)

js手写Promise,构造器,then,onFulfilled,onRejected,resolve,reject

2024-02-08 15:14:59 1181 2

原创 js的属性描述符

js属性描述符,writable,enumerable,configurable,set,get

2024-02-05 19:51:19 1207 1

原创 js的防抖与节流

js防抖与节流,手写防抖与节流函数,防抖与节流函数的this与参数绑定、首部尾部执行控制、获取返回值。

2024-01-17 19:06:42 585 6

原创 js中的class类

ES6,class,extend,super,minix,js多态

2024-01-11 20:51:57 1437 7

原创 jsES6+新语法

jsES6新语法,Symbol,Set,Map

2024-01-07 01:59:52 1161 6

原创 数据库课程设计报告——音乐管理系统

音乐管理系统是一个完善的数据库系统。系统中一共包含了10个表,以及对应的主键与相应的外键。创建的数个存储过程、函数与触发器保障了数据库的完整性与安全性;在撰写这次大作业的过程中,我学到很多,如如何分析业务需求和数据需求,如何设计数据库表,如何确保数据库的完整性和安全性;明白了如何分析业务需求,如何更好的理解业务,如将业务转化成文字与图表与代码,最终实现业务的流程,我也明白了团队合作的重要性,很多事光凭一个人的力量很难进行下去,唯有进行团队合作,合理分工才能顺利推进;

2024-01-03 14:06:33 3700 10

原创 js网络编程

js网络请求,Fetch,Axios,XHR,AJAX

2023-09-24 16:44:07 232

原创 js迭代器与生成器

迭代器,生成器,async和await,js异步的最终解决方案

2023-08-11 19:02:17 437

原创 js的Promise

回调地域,Promise,Promise的实例方法,类方法

2023-08-10 12:43:20 192

原创 js原型以及原型链

原型,原型链,继承,原型链继承,借用构造函数继承,原型式继承,寄生继承,组合继承,原型继承关系

2023-07-29 23:19:04 219

原创 js函数增强

js纯函数,柯里化函数,组合函数,函数属性,arguments,rest,with,eval,严格模式

2023-07-22 16:41:16 93

原创 js闭包以及垃圾回收机制

js闭包,内存泄漏,js垃圾回收机制,常见GC算法

2023-07-21 18:52:18 460

原创 js代码的执行原理

js代码执行原理,作用域以及作用域链

2023-07-18 22:30:10 233 2

原创 js的this绑定规则以及箭头函数

this的绑定规则

2023-07-16 11:47:38 275 2

原创 浏览器视口

浏览器视口

2023-07-14 20:20:32 255

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除