03 2022 档案

摘要:描述 普通script标签会阻塞dom解析,致浏览器必须加载并且执行脚本,之后才能继续解析,一些耗时操作会让页面出现白屏,而defer属性和async属性能够消除解析阻塞,并行请求脚本。 差异 存在async属性的脚本会并行请求,并尽快解析和执行,不保证顺序; 存在defer属性的脚本会阻塞DOMC 阅读全文
posted @ 2022-03-31 23:59 梦渊同学 阅读(60) 评论(0) 推荐(0) 编辑
摘要:缓存术语 命中:在缓存中找到数据; 不命中/穿透:在缓存中未找到数据; 命中率:命中次数/总次数; 强缓存 Cache-Control用于在 http 请求和响应中,通过指定指令来实现缓存机制。 可选值 可缓存性: public:所有方可以缓存; private:只有浏览器可以缓存; no-cach 阅读全文
posted @ 2022-03-26 21:18 梦渊同学 阅读(26) 评论(0) 推荐(0) 编辑
摘要:原生表单 前端 原生表单需要设置 3 个属性: action属性,即提交地址; method属性指定表单提交请求类型; get post put delete ... enctype属性指定表单提交内容类型; application/x-www-form-urlencoded:默认值 multipa 阅读全文
posted @ 2022-03-26 13:17 梦渊同学 阅读(12) 评论(0) 推荐(0) 编辑
摘要:一些常见头部 Content-Length:发送的 body 内容长度(字节),存在 请求头 和 响应头 一个 byte 是 8bit UTF-8 编码的字符 1-4 个字节(所以不能确定里面到底有多少个字符); User-Agent:帮助区分客户端特性的字符串,存在 请求头 操作系统; 浏览器; 阅读全文
posted @ 2022-03-21 23:15 梦渊同学 阅读(51) 评论(0) 推荐(0) 编辑
摘要:虽然大部分开发都没有严格遵守这套规则,但还是记录一下。 1xx:提供信息 100 continue; 101 switch protocol(切换协议,例如:websockey); 2xx:成功 200 OK 201 Created 已创建,更多和 post 请求一起; 202 Accepted 已 阅读全文
posted @ 2022-03-21 22:56 梦渊同学 阅读(40) 评论(0) 推荐(0) 编辑
摘要:URL 同一资源定位符,也称网址。 DNS (Domain Name System) 域名系统 DNS 查询:将 host(域名) 解析为 IP 地址。 解析过程 本机 host 文件; 本地服务商:有则返回记录,无则请求根服务器; 根服务器(Root server):不保存具体记录,返回该地址对应 阅读全文
posted @ 2022-03-21 22:01 梦渊同学 阅读(302) 评论(0) 推荐(0) 编辑
摘要:简介 类似 OSI 模型,一种网络协议概念模型 应用层:提供应用间通讯能力; 传送层:提供主机对主机(host-to-host)传输,TCP/UDP 协议,端口 网络层:提供地址到地址(ip-to-ip)传输; IP 协议 -链路层:设备对设备传输(mac-to-mac)传输; 物理层:光电信号传输 阅读全文
posted @ 2022-03-21 21:17 梦渊同学 阅读(78) 评论(0) 推荐(0) 编辑
摘要:开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI),简称为 OSI 模型(OSI model),一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。 应用层:用户数据 展示层 阅读全文
posted @ 2022-03-20 21:33 梦渊同学 编辑
摘要:如何用纯 css 实现页面滚动停靠效果 效果图 以前要实现页面滚动停靠效果需要借助 js 来操作 dom,类似于fullpage.js插件,现在纯 css 也能做到同样的事。 scroll-snap-type scroll-snap-type 属性定义元素容器的滚动方式。该属性不能作用于body标签 阅读全文
posted @ 2022-03-17 23:24 梦渊同学 阅读(720) 评论(0) 推荐(0) 编辑
摘要:window.__POWERED_BY_QIANKUN__ = true; let module = null; export const registerMicroApps = (apps = []) => { const _pushState = history.pushState; histo 阅读全文
posted @ 2022-03-15 23:03 梦渊同学 阅读(137) 评论(0) 推荐(0) 编辑
摘要:传统方式 监听 scroll 事件,调用指定元素 getBoundingClientRect 方法,再判断元素是否在视口内;如果是嵌套滚动,则需要多级监听,多级判断,计算量很大,可能影响性能。 (function () { const target = document.querySelector( 阅读全文
posted @ 2022-03-14 23:42 梦渊同学 阅读(327) 评论(0) 推荐(0) 编辑
摘要:前置知识 对象:location、history ; 事件:popstate、hashchange 作为前端路由,路由操作一定不能刷新页面,这一点很重要! hash 路由 原理 修改 location.hash 值(页面不会刷新),如果修改前后值不一致,则往 history 中增加一条记录;当 ha 阅读全文
posted @ 2022-03-13 19:46 梦渊同学 阅读(38) 评论(0) 推荐(0) 编辑
摘要:手写代码 function Promise(executor) { const self = this; self.state = 'pending'; self.data = undefined; self.resolvedCb = []; self.rejectedCb = []; functi 阅读全文
posted @ 2022-03-10 22:54 梦渊同学 阅读(17) 评论(0) 推荐(0) 编辑
摘要:根据我的个人理解,与实际有偏差 术语 Promise 是一个拥有 then 方法的对象或函数; thenable 是一个定义了 then 方法的对象或函数; value 指任何 JavaScript 的合法值(包括 undefined , thenable 和 promise); exception 阅读全文
posted @ 2022-03-10 22:49 梦渊同学 阅读(129) 评论(0) 推荐(0) 编辑
摘要:Generator 生成器函数,返回一个迭代器对象,可以手动调用 next 方法来控制执行,throw 方法抛出错误,return 方法来提前结束,也可以使用 for...of 自动遍历遍历。 function* gen() { yield 1; yield 2; yield 3; } let g 阅读全文
posted @ 2022-03-01 22:56 梦渊同学 阅读(34) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示