全称 Diffie Hellman密钥交换算法
DH算法属于公钥加密算法,https加密过程客户端C与服务端需要用到dh算法或者RSA算法来协商用户加密数据的session key
在加密数据时使用对称密码算法,密钥管理使用公钥密码技术
全称 Diffie Hellman密钥交换算法
DH算法属于公钥加密算法,https加密过程客户端C与服务端需要用到dh算法或者RSA算法来协商用户加密数据的session key
在加密数据时使用对称密码算法,密钥管理使用公钥密码技术
同源的定义:如果两个 URL 的 protocol、port (en-US) (如果有指定的话)和 host 都相同的话,则这两个 URL 是同源。这个方案也被称为“协议/主机/端口元组”,或者直接是 “元组”。(“元组” 是指一组项目构成的整体,双重/三重/四重/五重/等的通用形式)。
image(对一半),script嵌入的跨域脚本 , link,video和audio加载的媒体资源,applet等嵌入的插件,@font-face引入的字体 and iframe载入的任何资源
so 要提到浏览器的跨域网络访问
同源策略控制不同源之间的交互,例如在使用XMLHttpRequest 或 标签时则会受到同源策略的约束。这些交互通常分为三类:
如果在canvas调用drawImage跨域的image,canvas是不能把图片导出成base64d,需要给图片添加crossOrigin=anonymous
,这样canvas写入的图片才能正确被导出。
1 | The image is then configured to allow cross-origin downloading by setting its crossOrigin attribute to "Anonymous" |
引入mdn的解释,图片在设置了这个属性之后就被配置成允许跨域下载了。
全局调用g函数发现this为undefined,按照我的理解在全局调用的函数this应该是指向windows,然而这里却输出的是undefined
因此我去查了资料,发现在规范上是这么写的
如果所示class中默认为严格模式,而在严格模式中,未指明this指向的话this是等于undefined的,this是在运行时确定的,而不是在声明的时候确定的,因此这里的g()
在全局环境中调用未指明this指向,因此此时输出undefined。
而在function中是可以指定是否是严格模式的
1 | Promise.all = function (promises) { |
1 | Promise.any = function (promises) { |
Web Worker 文献综述
Web Worker 作为浏览器多线程技术, 在页面内容不断丰富, 功能日趋复杂的当下, 成为缓解页面卡顿, 提升应用性能的可选方案.
但她的容颜, 隐藏在边缘试探的科普文章和不知深浅的兼容性背后; 对 JS 单线程面试题倒背如流的前端工程师, 对多线程开发有着天然的陌生感.
业务背景
因为我负责的组件中有个是树组件,那么对于这个树组件有个功能是叫做搜索的功能,一开始的时候在搜索匹配节点的时候是在主线程中去执行代码,但是在遇到计算量大的时候,就会一直占用主线程的资源,导致页面不能及时的跟用户进行响应,那么我就想到了将这个计算的代码放到后台(也就是worker)去执行逻辑,这样的话就不会阻塞页面的渲染工作,因为worker的代码跟主线程的代码是属于并行的关系。
官方对这个web worker的表述是
1 | Web Workers makes it possible to run a script operation |
通过这个其实可以想到的是 并行可以提升执行效率,任务的拆分能减少页面的卡顿