- 博客(105)
- 收藏
- 关注
原创 浏览器内核
浏览器的内核通常指的是浏览器用来解析和渲染网页的引擎。不同的浏览器内核有不同的实现,但它们的基本功能是相似的,主要包括解析HTML、CSS和JavaScript代码,并将它们渲染成用户可以看到的网页。在这种情况下,浏览器会将不同的层(例如,背景层、文本层、图像层等)分别绘制,然后将它们合成在一起显示在屏幕上。重绘是当元素的外观改变但布局不变时发生的,而回流是当元素的位置或大小改变时发生的。:浏览器根据渲染树中的元素和样式信息,计算每个元素在屏幕上的确切位置和大小。渲染树包含了所有需要显示在屏幕上的元素。
2024-07-29 23:03:15 357
原创 setTimeout 和 setInterval
在JavaScript中,setTimeout和是两个用于定时操作的函数,它们都定义在window对象上,并且是Web API的一部分。
2024-07-29 22:45:54 457
原创 Rollup介绍
Rollup 是一个现代的 JavaScript 模块打包器,主要用于将多个模块打包成一个或多个小的、优化的 JavaScript 文件,以便在浏览器中使用。它特别适合于构建库和工具,但也可以用于构建应用程序。
2024-07-20 22:43:03 548
原创 MySQL9.0的新特性
虽然这是 MySQL 8.3 版本的特性,但值得一提的是,它引入了支持标签的全局事务标识符(GTID),使得事务集的分组和识别更加直观。的旧客户端程序的认证请求,进一步加强了 MySQL 的安全性,并鼓励用户采用更安全的认证方法。命令,以及一些复制和服务器的相关选项,引导管理员采用更有效、更现代的操作方法。两张表,记录了系统变量的类型、作用域和允许的值,对于性能微调和维护至关重要。:新版本扩展了预处理语句的功能,支持数据定义语言(DDL)命令,如。:MySQL 8.3 版本引入了一个新的。
2024-07-10 22:34:32 689
原创 认识同源策略
同源策略的目的是防止恶意文档窃取数据或对另一个源的资源进行未授权的访问。然而,这限制了Web应用程序的灵活性,因为现代Web应用经常需要跨域交互。为了解决这个问题,CORS(Cross-Origin Resource Sharing)协议被引入,它允许服务器明确允许某些跨源请求。同源策略是一种浏览器安全机制,用于限制一个源的文档或脚本如何与另一个源的资源进行交互。如果两个URL的协议、域名和端口都相同,则它们具有相同的源。例如,如果一个网页需要从另一个域的服务器获取数据,服务器可以设置响应头。
2024-07-09 22:39:39 414
原创 JavaScript中的可选链操作符
被称为可选链操作符(Optional Chaining Operator)。它允许你访问对象的深层属性而不必显式地检查每一层属性是否存在。如果链中的某个属性不存在,表达式将短路返回。输出是:Mara undefined Lydia Hallie undefined。这使得代码更加简洁和安全。可选链操作符也可以与函数调用和。操作符需要一个有效的构造函数)。在JavaScript中,例如,假设你有一个对象。,它可能包含一个属性。中的任何一个不存在,
2024-07-09 22:33:35 402
原创 防抖和节流
防抖(Debounce)和节流(Throttle)是前端开发中常用的两种优化技术,主要用于控制事件处理函数的执行频率,提高页面性能,尤其是在处理诸如滚动、窗口调整大小、按键等频繁触发的事件时。
2024-07-08 22:03:53 400
原创 软件设计模式总结
设计模式是软件设计中常见问题的通用解决方案。以下是一些常见的设计模式,分为三大类:创建型模式、结构型模式和行为型模式。这些模式提供了对象创建的机制,增加了已有代码的灵活性和可复用性。单例模式(Singleton):工厂方法模式(Factory Method):抽象工厂模式(Abstract Factory):建造者模式(Builder):原型模式(Prototype):这些模式处理对象组合,或对象与它们之间的关系。适配器模式(Adapter):装饰器模式(Decorator):代理模式(Proxy):外观模
2024-07-07 22:05:36 396
原创 Sass 和 SCSS
Sass 和 SCSS 是 Sass (Syntactically Awesome Stylesheets) 的两种语法。它们都被用于编写更加结构化和易于维护的 CSS。
2024-07-07 13:09:25 444
原创 认识并理解webSocket
今天逛牛客,看到有大佬分享说前端面试的时候遇到了关于webSocket的问题,一看自己都没见过这个知识点,赶紧学习一下,在此记录!WebSocket 是一种网络通信协议,提供了全双工通信渠道,即客户端和服务器可以同时发送和接收数据。这与传统的HTTP请求不同,后者是单向的,客户端发起请求,服务器响应请求。WebSocket 允许服务器主动向客户端发送消息,这使得实时通信成为可能,例如在线聊天应用、实时游戏、股票行情更新等场景。
2024-07-06 17:46:29 1925 1
原创 理解async和await
async和await是 JavaScript 中用于编写异步代码的两个关键字。它们让异步代码的编写更加简洁、易于理解和维护,类似于同步代码的写法。
2024-07-06 17:08:48 366
原创 ES6中函数的this对象
如果在全局上下文中调用sayColor(),这结果会输出"red",因为 this 指向 window,而 this.color 相当于 window.color。而在把 sayColor()赋值给 o 之后再调用 o.sayColor(),this 会指向 o,即 this.color 相当于o.color,所以会显示"blue"。在事件回调或定时回调中调用某个函数时,this 值指向的并非想要的对象。ES6中,对于函数,有一个特殊的对象是 this,它在标准函数和箭头函数中有不同的行为。
2024-07-04 09:47:09 306
原创 git常用命令
删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项。删除远程分支:$ git push origin :heads/[name] 或 $ gitpush origin :[name]创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支。合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并。
2024-06-29 12:45:45 278
原创 缓存、数据库、搜索引擎、消息队列
目前用的比较多的开源软件是 Solr 和 Elasticsearch,都是基于 Lucence 来实现的,不同之处主要在于 termIndex 的存储、分布式架构的支持等。在高并发的后端应用中,将数据持久层的数据加载到缓存中,能够隔离高并发请求与后端数据库,避免数据库被大量请求击垮。数据库:数据库可以说是后端应用最基本的基础设施。缓存、数据库、搜索引擎、消息队列这四者都是应用依赖的后端基础服务,他们的性能直接影响到了应用的整体性能,有时候你代码写的再好也许就是因为这些服务导致应用性能无法提升上去。
2024-06-29 11:19:45 351
原创 fake.js的使用
fake.js(也称为 Fake.js)是一个用于生成大量逼真数据的JavaScript库,它可以帮助开发者在开发和测试阶段快速生成模拟数据。这个库特别适用于前端开发中的原型设计、测试和占位内容的生成。多种数据类型:支持生成各种类型的数据,包括但不限于姓名、地址、电子邮件、日期、颜色、电话号码等。无依赖性:作为一个独立的库,fake.js 不依赖于其他JavaScript库或框架。本地化:fake.js 提供了多种本地化选项,可以生成特定国家或地区的数据。链式调用:支持链式调用,使得数据生成更加灵活。
2024-06-28 17:23:01 394
原创 Android学习
实现垂直或者水平布局。orientation属性控制控件排列方向,包含两个属性值:vertical(垂直)、horizontal(水平);weight属性表示权重。
2024-06-28 16:54:11 1736
原创 git克隆仓库时报错“HTTP/2 stream 1 was not closed cleanly before end of the underlying stream“
http/2 和 http/1.1之间有个区别是“HTTP2 基于 SPDY,专注于性能,最大的一个目标是在用户和网站间只用一个连接”。检查我的网络连接和梯子都正常,于是改用ssh克隆。
2024-06-27 14:17:52 656
原创 大数据技术与实践学习
分布式文件系统把文件分布存储到多个计算机节点上,成千上万的计算机节点构成计算机集群。HDFS简介HDFS采用抽象的块概念带来的好处:1.支持大规模文件存储(文件块存储)2.简化系统设计3.适合数据备份NameNode和DataNodeHBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库。HBase和传统的关系数据库的区别:1.数据类型:将数据存储为未经解释的字符串。2.数据操作:避免了复杂的表和表之间的关系。3.存储模式:关系数据库是基于行模式存储的。HBase是基于列存。
2024-06-17 23:40:37 966 4
原创 Android组件间通信
操作,Bundle我们可以看作是一个存储可传输的数据的容器,什么是可传输的呢?我们的理解是像基本数据类型本身就可以直接转换为字节流,所以是可传输的。序列化是将对象的状态转换为字节流的过程,这样可以将对象保存到文件、数据库或通过网络传输。Bundle是Android提供的一种简单的数据结构,类似于Java中的Map,可以存储各种基本数据类型和一些复杂的数据类型。EventBus是一个流行的发布/订阅事件总线库,简化了Android组件(如Activity、Fragment、Service等)之间的通信。
2024-06-13 16:52:06 278
原创 win10操作系统底部菜单栏卡死
卡住的原因其实是任务栏里面的资讯和兴趣卡住了,右击底部导航栏空白处,找到资讯和兴趣,把它关闭就好了。经常遇到win10操作系统底部菜单栏卡死的问题,今天直接一步解决。
2024-05-21 20:54:38 370
原创 Hadoop介绍
YARN支持多种应用程序模型,包括传统的基于批处理的MapReduce模型,以及新兴的交互式查询(例如Apache Tez)、流处理(例如Apache Flink)和机器学习(例如Apache Spark)等。HDFS将大文件分割成数据块(通常大小为128MB或更大),并将这些数据块复制到集群中的不同节点上,以确保数据的冗余备份和可靠性。Hive:基于Hadoop的数据仓库工具,提供类似SQL的查询语言(HiveQL)来分析存储在HDFS中的数据,适用于数据分析和报表生成。
2024-05-16 22:41:04 406
原创 Blob数据类型
Blob(Binary Large Object)是一种二进制大对象的数据类型,用于存储大量的二进制数据,比如图片、视频、音频等。Blob对象通常用于处理从网络上获取的数据或者在浏览器中生成的数据,例如通过用户上传的文件、从服务器下载的文件等。要操作Blob对象的内容,通常需要使用一些API,比如使用FileReader对象读取Blob对象的内容、使用URL.createObjectURL()方法创建Blob URL等。:将数据存储为Blob对象,然后使用IndexedDB等客户端存储技术进行缓存。
2024-05-14 21:51:35 433
原创 解决哈希冲突的方法总结
哈希冲突是指在哈希表中两个或多个键被哈希函数映射到了同一个位置上,造成数据存储冲突的情况。将所有冲突的键存储在一个单独的区域中,当发生冲突时,将键存储在公共溢出区中。将哈希表的每个槽指向一个链表,当发生冲突时,将冲突键添加到链表中。设计一个能够保证没有冲突的哈希函数,通常适用于静态数据集。二次探测法:当发生冲突时,以二次方递增地查找下一个空槽。双重散列法:使用第二个哈希函数来计算冲突键的下一个位置。使用第二个哈希函数对冲突键再次哈希,直到找到一个空槽。线性探测法:当发生冲突时,顺序地查找下一个空槽。
2024-05-14 21:28:22 263
原创 SpringBoot项目中使用Redis,Mybatis和JWT
特别是对于频繁读取但不经常更新的数据,如配置信息、热门数据等,可以将其缓存到Redis中,减轻数据库的压力。1.数据持久化:MyBatis是一种优秀的持久层框架,可以简化数据库操作,提供对象关系映射(ORM)功能,帮助开发人员轻松地进行数据库操作。2.SQL控制:MyBatis允许开发人员编写原生SQL语句,灵活控制SQL的执行过程,包括动态SQL、批量操作等功能。2.会话管理:可以使用Redis存储用户会话信息,实现分布式会话管理,提高应用的可伸缩性和可用性。
2024-05-14 21:26:17 1072 1
原创 HTTP有哪些请求方法?
简单来说,PUT,DELETE,POST,GET对应着“增删改查”OPTIONS: 列出可对资源实行的请求方法,用来跨域请求。CONNECT: 建立连接隧道,用于代理服务器。DELETE: 删除资源(几乎用不到)TRACE: 追踪请求-响应的传输路径。POST: 提交数据,即上传数据。HEAD: 获取资源的元信息。GET: 通常用来获取资源。
2024-05-12 16:48:38 96
原创 计算机网络-负载均衡算法
2.源地址哈希法(Source Hashing):根据请求来源的IP地址进行哈希计算,然后将请求分发到对应的服务器上,这样可以保证来自同一IP地址的请求总是被分发到同一台服务器上,有利于实现会话保持。3.加权轮询法(Weighted Round Robin):在轮询法的基础上,为每台服务器分配一个权重,权重越大,被选中的机会就越大。4.加权随机法(Weighted Random):在随机法的基础上,为每台服务器分配一个权重,权重越大,被选中的机会就越大。
2024-05-12 16:45:29 449
原创 Vue的diff算法
当 Vue 在列表中渲染多个相同的节点时,它需要使用一种策略来确定哪些节点是“稳定”的,哪些节点是新的或已删除的。这意味着如果你改变了一个节点的位置(例如,将一个节点从一个父节点移动到另一个父节点),Vue 会销毁该节点并在新的位置重新创建它,而不是简单地“移动”它。对于元素节点,Vue 会比较其属性和子节点,以确定是否需要进一步的 diff 操作。Vue.js 的 diff 算法是其性能优化的关键部分,它用于比较新旧虚拟 DOM 树并计算出最小的变更集,以便将这些变更应用到真实的 DOM 上。
2024-05-12 15:44:14 322
原创 axios、fetch和ajax
然而,fetch在某些情况下可能不如axios方便,比如fetch的返回值需要手动进行JSON转换,并且当接收到错误的HTTP状态码时,fetch返回的Promise不会被标记为reject。总结来说,ajax、fetch和axios都是用于发送HTTP请求的技术,但它们在实现方式、功能支持、错误处理和兼容性等方面有所不同。Ajax不是一种新的编程语言,而是一种基于JavaScript、XML、HTML与CSS等现有技术的组合,用于创建更好、更快以及交互性更强的Web应用程序。
2024-05-12 12:28:07 265 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人