Lighthouse 是一个开源的自动化工具,可以用于改进 Web 应用的质量。
A · 解答思路 不需要真的把文件“分割”成多个独立文件,只要目标服务器(或 CDN)支持 HTTP Range 请求,就可以直接用 fetch 携带 Range 请求头,一次请求一个字节区间,从而实现“按需分片获取”的效果,等价于把文件按范围切成了多份。 示例代码
说到加载速度优化我们能想到什么?网上能找到一些什么内容?CDN? GZIP? 开启缓存?HTTP2? Tree-shaking?
昨天被人问到了一个问题:
A · 解答思路 JSONP 本质上是利用 标签不受同源策略限制的特性来实现“跨域”,它本身不存在真正的跨域限制问题;如果 JSONP 突然不生效了,通常不是「跨域」本身的问题,而是环境或安全策略发生了变化。 详细说明 排查思路可以从以下几个方向入手: 1. 协议是否一致:跨域判断
今年感觉过的更快了,又到了年度写总结的时候。先来快速过一下回忆一下今年
A · 解答思路 先理清引用关系:const frame = window.open(url) 中,frame 是打开者(原窗口)持有的新窗口的引用;而在新窗口内部,window.opener 则是指向打开它的那个原窗口的引用。有了双向引用后,就可以通过 postMessa
A · 解答思路 区分不同域名的请求本来就是 Nginx servername 指令的职责,不需要(也不应该)通过 URL 路径来区分——只要为每个域名单独配置一个 server {} 块即可,Nginx 会根据请求头中的 Host 自动匹配对应的 servername,路由到相应的配置块。 ###
A · 解答思路 for 循环如果没有用 {} 包裹循环体,默认只会把紧跟着的下一条语句当作循环体;一旦把这条语句注释掉了,实际的循环体就变成了原本以为在循环外的下一行代码。 示例代码
A · 解答思路 问题出在逗号 ,? 是可选的(? 表示 0 次或 1 次),一旦逗号可以不出现,整个 (.{1,50},?) 分组就退化成了 (.{1,50}),而多个 (.{1,50}) 又可以被外层的 + 无限重复拼接,等价于对字符数完全没有限制。 详细说明 逐步简化理解这