缓存,这是一个老生常谈的话题,也常被作为前端面试的一个知识点。
本文,重点在与探讨在实际项目中,如何进行缓存的设置,并给出一个较为合理的方案。
在介绍缓存的时候,我们习惯将缓存分为强缓存
和协商缓存
两种。两者的主要区别是使用本地缓存的时候,是否需要向服务器验证本地缓存是否依旧有效。顾名思义,协商缓存,就是需要和服务器进行协商,最终确定是否使用本地缓存。
(.+)默认是贪婪匹配
(.+?)为惰性匹配
疑问号让.+的搜索模式从贪婪模式变成惰性模式。
var str = 'aaa<div style="font-color:red;">123456</div>bbb'
<.+?>
会匹配<div style="font-color:red;">
<.+>
会匹配<div style="font-color:red;">123456</div>
要在浏览器测试结果的话,输入:
|
首先上一个 call 使用
|
React 会创建一个虚拟 DOM(virtual DOM)。当一个组件中的状态改变时,React 首先会通过 “diff” 算法来标记虚拟 DOM 中的改变,第二步是调节(reconciliation),会用 diff
的结果来更新真实 DOM。虚拟
DOM 作为一种缓存机制优化了 UI 渲染减少昂贵的 DOM 变化的数量。
为什么不能每次改变都直接去操作 DOM 树?
这是因为在浏览器中每一次 DOM 操作都有可能引起浏览器的重绘或回流:
promise 最早是在 commonjs 社区提出来的,当时提出了很多规范。比较接受的是 promise/A 规范。但是 promise/A 规范比较简单,后来人们在这个基础上,提出了 promise/A+规范,也就是实际上的业内推行的规范;es6 也是采用的这种规范,但是 es6 在此规范上还加入了 Promise.all、Promise.race、Promise.catch、Promise.resolve、Promise.reject 等方法。
我们可以通过脚本来测试我们写的 Promise 是否符合 promise/A+的规范。将我们实现的 Promise 加入以下代码:
|
然后通过 module.exports 导出,安装测试的脚本:
|
在实现 Promise 的目录执行以下命令:
|
接下来,脚本会对照着 promise/A+的规范,对我们的脚本来一条一条地进行测试。
more >>在第一次触发事件时,不立即执行函数,而是给出一个期限值比如200ms
,然后:
如果在 200ms
内没有再次触发滚动事件,那么就执行函数
如果在 200ms
内再次触发滚动事件,那么当前的计时取消,重新开始计时
|
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia-plus根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true