获得徽章 16
#每天一个知识点# position:sticky 是css3定位新增属性;可以说是相对定位relative和固定定位fixed的结合;它主要用在对scroll事件的监听上;简单来说,在滑动过程中,某个元素距离其父元素的距离达到sticky粘性定位的要求时 (比如bottom:100px);position:sticky这时的效果相当于fixed定位,固定到适当位置。
#每天一个知识点# npm 模块安装机制和实现原理
安装机制:查询node_modules目录中是否存在指定模块,存在不重新安装;不存在向registry查询模块压缩包网址,下载压缩包存放在根目录下的.npm目录里,解压压缩包到当前目录的node_modules目录
实现原理:
1. 执行工程自身preinstall
2. 确定首层依赖模块:dependencies 和 devDependencies 属性中直接指定的模块
3. 获取模块:获取模块信息、模块实体、查找该模块依赖
4. 模块扁平化:遍历所有节点,逐个将模块放在根节点下,如果发现重复模块则丢弃
5. 安装模块:更新 node_modules目录,执行模块中的生命周期函数
6.执行工程自身生命周期
#每天一个知识点# React 懒加载的实现原理主要基于 ES6 中的 import() 动态导入语法和 React 中 Suspense 组件的机制。当使用 React.lazy 导入一个组件时,实际上该组件会作为只包含该组件的缓存模块进行封装。只有在该组件被渲染并且所依赖的模块已经完成下载,才会真正地引用和加载该组件,否则会出现尚未准备好的状态并等待模块下载完成。此时就可以使用 Suspense 组件和 fallback 属性来显示一个或多个组件在数据装载完成之前显示的内容。当组件和它所依赖的所有组件加载完成后,React 会自动取消注释并显示该组件及其所依赖的组件。
#每天一个知识点# 客户端发送的、Nginx 反向代理服务器接收到的请求数量,就是我们所说的负载量。请求数量按照一定的规则进行分发到不同的服务器处理的规则,就是一种均衡规则。将服务器接收到的请求按照规则分发的过程,称为负载均衡。负载均衡在实际项目操作过程中,有硬件负载均衡和软件负载均衡两种。
#每天一个知识点# CSP指的是内容安全策略,为了缓解很大一部分潜在的跨站脚本问题,浏览器的扩展程序系统引入了内容安全策略(CSP)的一般概念。这将引入一些相当严格的策略,会使扩展程序在默认情况下更加安全,开发者可以创建并强制应用一些规则,管理网站允许加载的内容。通常有两种方式来开启 CSP,一种是设置 HTTP 首部中的Content-Security-Policy,一种是设置 meta 标签的方式。
#每天一个知识点# 常见的内存泄漏原因包括:
忘记释放内存:在使用动态分配的内存后,忘记释放它,导致内存泄漏。
重复释放内存:在释放内存之前,多次释放同一块内存,导致内存泄漏。
使用已经释放的内存:在释放内存之后,再次使用已经释放的内存,导致程序崩溃。
内存泄漏的积累:由于程序中存在多个内存泄漏点,导致内存泄漏不断积累,最终导致程序崩溃。
#每天一个知识点# 泛型是定义类型的变量,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。泛型是创建可重用组件的方法工具,它能够创建可以使用多种数据类型而不单一数据类型的组件,而且,它在不影响性能或生产率的情况下提供了类型安全性。泛型允许我们创建泛型类、泛型函数、泛型方法和泛型接口。
#每天一个知识点#
当使用 echarts 绘制柱状图时,可以通过调整 barWidth 和 barMaxWidth 来设置柱子的宽度。barWidth 控制每个柱子的宽度,可以指定一个具体的数值,例如 20。barMaxWidth 控制柱子的最大宽度,例如 40,当柱子的宽度超过 barMaxWidth 时,其宽度将被限制为 barMaxWidth
#每天一个知识点# 延迟加载js的方式:
defer 属性:给 js 脚本添加 defer 属性,异步加载脚本,但会推迟到页面解析完成后再执行,这样的话就能使页面的渲染不被阻塞。
async 属性:给 js 脚本添加 async 属性,异步加载脚本,当脚本加载完成后立即执行 js 脚本,加载不会阻塞页面的解析过程,但执行脚本时,如果文档没有解析完成的话同样会阻塞。
动态创建 DOM 方式:动态创建 DOM 标签的方式,可以对文档的加载事件进行监听,当文档加载完成后再动态的创建 script 标签来引入 JS 脚本。
#每天一个知识点# DNS劫持:攻击者篡改DNS解析设置,将域名由正常IP指向由攻击者控制的非法IP,导致访问域名打开的却不是对应的网站,而是一个不可达或者假冒的网站
下一页