打赏

03 2019 档案

摘要:1. CDN缓存更方便 CDN:是构建在网络之上的内容发布网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容发布、调度等功能模块,是用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要是内容存储和分布技术。简单来说,CDN主要用来使用户就近获取资源。 2 阅读全文
posted @ 2019-03-20 09:35 孟繁贵 阅读(564) 评论(0) 推荐(0) 编辑
摘要:块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视化CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。 下列方式会创建块格式化上下文: 根元素或包含根元素的元素 浮动元素(元素的 float 不是 none) 绝对定位元素 阅读全文
posted @ 2019-03-17 20:21 孟繁贵 阅读(3085) 评论(0) 推荐(0) 编辑
摘要:运算符优先级:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence 阅读全文
posted @ 2019-03-15 10:50 孟繁贵 阅读(1062) 评论(0) 推荐(0) 编辑
摘要:1.首屏内容最好做到静态缓存 2.首屏内联css渲染 3.图片懒加载 4.服务端渲染,首屏渲染速度更快(重点),无需等待js文件下载执行的过程 5.交互优化(使用加载占位器,在白屏无法避免的时候,为了解决等待加载过程中白屏或者界面闪烁) 6.图片尺寸大小控制 阅读全文
posted @ 2019-03-14 11:10 孟繁贵 阅读(596) 评论(0) 推荐(0) 编辑
摘要:1、Nginx 正向和反向代理的区别 正向代理和反向代理的区别:正向代理隐藏真实客户端,反向代理隐藏真实服务端,图示: 2、cookie跨域问题 因为cookie存在跨域问题,其中一个解决方法是,设置Nginx代理服务器,将两个服务器域名统一到一个反向代理服务器。 3、解决顶级域名与二级域名之间的c 阅读全文
posted @ 2019-03-13 10:49 孟繁贵 阅读(4459) 评论(0) 推荐(0) 编辑
摘要:web worker 介绍:https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Workers_API/Using_web_workers web worker的作用: Web Worker为Web内容在后台线程中运行脚本提供了一种简单的方法。线 阅读全文
posted @ 2019-03-13 09:52 孟繁贵 阅读(197) 评论(0) 推荐(0) 编辑
摘要:1、代码 2、区别 isPrototypeOf() 方法用于测试一个对象是否存在于另一个对象的原型链上。 isPrototypeOf() 与 instanceof 运算符不同。在表达式 "object instanceof AFunction"中,object 的原型链是针对 AFunction.p 阅读全文
posted @ 2019-03-12 16:28 孟繁贵 阅读(868) 评论(0) 推荐(0) 编辑
摘要:1、输出文件的文件名 加hash 2、提取引导模板 3、模块标识符 https://webpack.docschina.org/guides/caching/#src/components/Sidebar/Sidebar.jsx 阅读全文
posted @ 2019-03-12 15:30 孟繁贵 阅读(302) 评论(0) 推荐(0) 编辑
摘要:1、babel转换原理 2.主要过程 (1)babylon进行解析得到AST (2)babel-traverse插件对AST树进行遍历转译得到新的AST树 (3)babel-generator将AST树生成ES5代码 阅读全文
posted @ 2019-03-11 14:43 孟繁贵 阅读(413) 评论(0) 推荐(0) 编辑
摘要:1、异常捕获 2、冒泡性质 Promise 对象的错误具有“冒泡”性质,会一直向后传递,直到被捕获为止。也就是说,错误总是会被下一个catch语句捕获。 上面代码中,一共有三个 Promise 对象:一个由getJSON产生,两个由then产生。它们之中任何一个抛出的错误,都会被最后一个catch捕 阅读全文
posted @ 2019-03-11 11:19 孟繁贵 阅读(4900) 评论(0) 推荐(0) 编辑
摘要:Object.defineProperty 虽然已经能够实现双向绑定了,但是他还是有缺陷的。 虽然 Vue 中确实能检测到数组数据的变化,但是其实是使用了 hack 的办法,并且也是有缺陷的。 反观 Proxy 就没以上的问题,原生支持监听数组变化,并且可以直接对整个对象进行拦截,所以 Vue 也将 阅读全文
posted @ 2019-03-10 17:29 孟繁贵 阅读(868) 评论(0) 推荐(0) 编辑
摘要:这道题考察了如何在不卡住页面的情况下渲染数据,也就是说不能一次性将几万条都渲染出来,而应该一次渲染部分 DOM,那么就可以通过 requestAnimationFrame 来每 16 ms 刷新一次。 阅读全文
posted @ 2019-03-10 15:36 孟繁贵 阅读(1114) 评论(0) 推荐(0) 编辑
摘要:1、前端错误分类(1)即时运行错误:代码错误(2)资源加载错误 (3)对于跨域的代码运行错误会显示 Script error. 对于这种情况我们需要给 script 标签添加 crossorigin 属性 2、即时运行错误捕获(1)try ....catch(2) window,onerror 记住 阅读全文
posted @ 2019-03-10 15:32 孟繁贵 阅读(813) 评论(0) 推荐(0) 编辑
摘要:base64说明: (1)base64的编码体积通常是原体积的4/3 (2)会消耗更多的cpu和内存资源 (3)适用于图片小的场景 对于能够显示 WebP 格式的浏览器尽量使用 WebP 格式。因为 WebP 格式具有更好的图像数据压缩算法,能带来更小的图片体积,而且拥有肉眼识别无差异的图像质量,缺 阅读全文
posted @ 2019-03-10 15:28 孟繁贵 阅读(740) 评论(0) 推荐(0) 编辑
摘要:Load 事件触发代表页面中的 DOM,CSS,JS,图片已经全部加载完毕。 DOMContentLoaded 事件触发代表初始的 HTML 被完全加载和解析,不需要等待 CSS,JS,图片加载。 阅读全文
posted @ 2019-03-09 21:52 孟繁贵 阅读(326) 评论(0) 推荐(0) 编辑
摘要:该方式只能用于二级域名相同的情况下,比如 a.test.com 和 b.test.com 适用于该方式。 只需要给页面添加 document.domain = 'test.com' 表示二级域名都相同就可以实现跨域 实例参考:https://blog.csdn.net/nlznlz/article/ 阅读全文
posted @ 2019-03-09 21:40 孟繁贵 阅读(273) 评论(0) 推荐(0) 编辑
摘要:addEventListener api 第三个参数说明: (1)若是布尔值的话, useCapture 默认为 false ,表示冒泡阶段 (2)若是对象的话: 一个指定有关 listener 属性的可选参数对象。可用的选项如下: capture: Boolean,表示 listener 会在该类 阅读全文
posted @ 2019-03-09 21:17 孟繁贵 阅读(2104) 评论(0) 推荐(0) 编辑
摘要:V8 实现了准确式 GC,GC 算法采用了分代式垃圾回收机制。因此,V8 将内存(堆)分为新生代和老生代两部分。 1、新生代算法 新生代中的对象一般存活时间较短,使用 Scavenge GC 算法。 在新生代空间中,内存空间分为两部分,分别为 From 空间和 To 空间。在这两个空间中,必定有一个 阅读全文
posted @ 2019-03-09 21:09 孟繁贵 阅读(433) 评论(0) 推荐(0) 编辑
摘要:call和apply的作用: 就是"借用"其他的函数,完成事情,第一个参数都是“借用”的主体。 1、模拟call实现 Function.prototype.myCall = function (context) { var context = context || window // 给 conte 阅读全文
posted @ 2019-03-09 20:50 孟繁贵 阅读(2085) 评论(0) 推荐(1) 编辑
摘要:本文参考自:https://www.cnblogs.com/chenguangliang/p/5856701.html 1、CommonJS NodeJS是CommonJS规范的实现,webpack 也是以CommonJS的形式来书写。node.js将javascript语言用于服务器端编程。 2、 阅读全文
posted @ 2019-03-09 20:37 孟繁贵 阅读(6321) 评论(0) 推荐(2) 编辑
摘要:1、api setTimeout: https://developer.mozilla.org/zh-CN/docs/Web/API/Window/setTimeout setInterVal https://developer.mozilla.org/zh-CN/docs/Web/API/Wind 阅读全文
posted @ 2019-03-09 20:30 孟繁贵 阅读(1097) 评论(0) 推荐(0) 编辑
摘要:function instanceof(left, right) { // 获得类型的原型 let prototype = right.prototype // 获得对象的原型 left = left.__proto__ // 判断对象的类型是否等于类型的原型 while (true) { if ( 阅读全文
posted @ 2019-03-09 20:16 孟繁贵 阅读(570) 评论(0) 推荐(0) 编辑
摘要:题目: 代码实现: 阅读全文
posted @ 2019-03-08 11:12 孟繁贵 阅读(27643) 评论(5) 推荐(5) 编辑
摘要:1、视频 video 2、音频 audio 3、拖放 Drag 和 drop 4、画布 canvas 5、SVG 6、地理定位 navigator.geolocation.getCurrentPosition 7、web 存储 localStorage 和 sessionStorage 8、应用缓存 阅读全文
posted @ 2019-03-07 10:44 孟繁贵 阅读(2007) 评论(0) 推荐(0) 编辑
摘要:1、全局属性 Infinity NaN undefined 2、全局函数 encodeURI encodeURIComponent decodeURIComponent escape unescape eval isFinite isNaN parseFloat parseInt Number St 阅读全文
posted @ 2019-03-07 10:20 孟繁贵 阅读(1245) 评论(0) 推荐(0) 编辑
摘要:1、存储方式分类 (1)Local Storage (2)Session Storage (3)IndexedDB (4)Web SQL (5)Cookie 2、区别 (1)Local Storage localStorage 中的键值对是以字符串的形式存储,除非清除,否则长期有效。 (2)Sess 阅读全文
posted @ 2019-03-06 16:08 孟繁贵 阅读(1522) 评论(0) 推荐(0) 编辑
摘要:1、api说明 (1)substring substring 提取从 indexStart 到 indexEnd(不包括)之间的字符。特别地: 如果 indexStart 等于 indexEnd,substring 返回一个空字符串。 如果省略 indexEnd,substring 提取字符一直到字 阅读全文
posted @ 2019-03-06 11:39 孟繁贵 阅读(282) 评论(0) 推荐(0) 编辑
摘要:1、iframe iframe主要来内联一个外联的页面,如: iframe可以支持很多属性,如width,height,aligh等。 2、frame frame示例: 区别:(1)frame框架需要定义在frameset中。(2)html页面中没有body标签。(3)frame支持的属性比较少。 阅读全文
posted @ 2019-03-06 09:37 孟繁贵 阅读(340) 评论(0) 推荐(0) 编辑
摘要:1、代码实现 2、效果 阅读全文
posted @ 2019-03-06 09:18 孟繁贵 阅读(698) 评论(0) 推荐(0) 编辑
摘要:1、内置函数 2.内置对象 阅读全文
posted @ 2019-03-04 09:17 孟繁贵 阅读(917) 评论(0) 推荐(0) 编辑
摘要:(1)get类型攻击 而且 用户也是登陆了目标银行 (2)post类型 3、防范 (1)验证码 (2)refer头,缺点,有时请求不会带refer头 (3)token SameSite 可以对 Cookie 设置 SameSite 属性。该属性设置 Cookie 不随着跨域请求发送,该属性可以很大程 阅读全文
posted @ 2019-03-02 17:57 孟繁贵 阅读(257) 评论(0) 推荐(0) 编辑

TOP