使用requestAnimationFrame平滑无卡顿插入100000条数据
1. 前言网页回流与重绘有时可能会比 JS 的执行消耗更长的时间,比如插入十万条数据,这可能是一个伪需求,但是也是一个值得思考的命题。接下来我们的例子中的 html 都用如下的结构,点击页面按钮后,将 100000 个 li 插入到 ul 中去: 1234<body> <butt ...

开脑洞:纯CSS实现一个手风琴效果
原理在研究CSS选择器的时候,突然想到实现单个展开的手风琴效果很像 radio 组件,即单项选择组件,他们都是选择一个进入 selected 状态后,其他元素的 selected 状态就被取消。所以,对于表单的 radio 组件我们可以利用 CSS 伪类选择器 :selected 来检测其是否被选中 ...

CSS3选择器的 nth-child 与 nth-of-type
吐槽CSS3 的选择器文档说明简直让人看的头大,每一句话都搞得跟阅读理解一样,就算读通了也没有办法理解,所以就在这里好好研究一下 CSS3 的选择器到底选择目标是什么。 nth-child 官方解释:p:nth-child(2) 规定属于其父元素的第二个子元素的每个 p 的背景色 最难让我头大的就 ...

浏览器渲染页面的过程
1. 主要过程下图是浏览器解析一个页面的主要过程,大体上为:下载HTML - 并行下载 head 中的 CSS JS - 生成 DOM 数、CSSOM 树 - 生成渲染树 - DOMContentLoaded 事件被触发 - 加载其他资源 - window.onload 事件被触发 更简化一点:下载 ...

从移动端适配探讨响应式布局与 view-port
viewport影响着我们页面的什么?viewport是虚拟显示视口,它是时刻存在的(在现代浏览器上),我们设置meta标签只是去改变viewport的相关属性,并非是去设置一个viewport。只是在响应式页面开发过程中,默认的viewport会造成我们页面观感不合适,所以要去设置默认的缩放比例, ...

重拾JSONP,手动封装JSONP的多种写法
1. JSONP 原理以及传统的实现方案在如今的前后端分离传递数据的方式下,大多解决跨域的方案都使用设置 CORS(跨域资源共享),但是 jsonp 由于可以兼容低版本浏览器,现在仍然还有在使用,同时其实现思路也比较有意思,所以在此记录一下。 jsonp 的实际原理就是客户端通过 script 标签 ...

http与浏览器的缓存机制
缓存基础首先我们要知道缓存的目的是什么? 使用缓存可以有效的减少服务器的请求次数,这一特性主要用于缓存静态资源,对于长期不会改变的服务器静态资源,启用缓存则无需从服务器二次下载。 缓存分为两种类型,分为 强制缓存 与 协商缓存: 对于强制缓存,浏览器会根据上次请求获取的 Cache-Controll ...

Surface Pro 6 日常使用问题记录
1. 屏幕低亮度闪屏问题按以下顺序找到0000文件夹: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000] 然后找Featu ...

Git常用操作整理
1. Git 基本原理 工作区:我们能看到的,用来写代码的区域 暂存区:临时存储用的 历史区:生成历史版本 2. 基础指令Git 配置查看配置信息: 123git config -l # 查看配置信息git config --global -l # 查看全局配置git co ...

Koa中的的错误处理方案
1. 在 async 函数中错误捕获我们通常处理 Promise 异步操作中的错误可以使用 .catch(err=>{ ... }) 来处理,如: 12345getAsyncData().then(() => { console.log("成功啦 ...