主页

sendBeacon

navigator.sendBeacon(url, data); 如果浏览器成功的加入发送数据的队列,返回true,否则false; 这个方法强调的是分析和诊断代码,它们是在页面卸载前尝试向服务器发送数据的代码;发送数据的瞬间可能会错失收集数据的机会,但是对传统的开发者来说,在页面卸载前发送完数据是很难做到的,因为浏览器经常忽略unload处理函数中的异步请求(XMLHttpRequest) 为了解决这个问题,分析和诊断代码经常是在unload or beforeunload函数中使用同步的XMLHttpRequest请求来提交数据; 但是同步的XMLHttpRequest请求会阻碍文档的卸载,导致下一个页面加载缓慢。下一个页面什么也不做不了来避免页面加载缓慢的问题,因为问题是前...

阅读更多

js新增

window.scrollTo(x-coord, y-coord) window.scrollTo(options) option={ left:xxx,top:xxx,behavior: ‘smooth/auto’ } closest document.querySelector(“li”).closest(“#nav”) URLSearchParams new URLSearchParams(location.search).get(“name”) var url = new URL(‘https://example.com?foo=1&bar=2’); var params = new URLS...

阅读更多

Scope Hoisting

开启 Scope Hoisting 后,代码体积更小,因为函数申明语句会 产生大量的代码; 代码在运行时因为创建的函数作用域 变少了 ,所以内 存开销也变小了; Scope Hoisting 的 实现原理其实很简单:分析模块之间的依赖关系,尽可能将被打散的 模块合并到一个函数中,但前提是不能造成代码冗余 。 因此只有那些被引用了 一次的模块才 能被合井 。 由于 Scope Hoisting 需要分析模块之间的依赖关系,因此源码必须采用 ES6 模块化 语句, 不然它将无法生效。涉及配置: const ModuleConcatenationPlugin = require (’webpack/lib/optimize/ModuleConcatenationPlugin ’); modu...

阅读更多

网络好文搜集

java类加载趣味解析 servlet JDBC AOP:在运行时生成新的类,让新生成的类继承老的类,或者和老的类实现同样的接口,比如ASM这样的工具,可以操作字节码去创建新的类,织入那些‘切面’代码

阅读更多

图像知识

光源色:光源所带的颜色 固有色:物体本身所有颜色;物体的固有色是它反射色光的特性; !img

阅读更多