使用browser-tools-mcp,让AI对接浏览器
使用browser-tools-mcp,让AI对接浏览器 browser-tools介绍 browser-tools 的 github地址:https://github.com/AgentDeskAI/browser-tools-mcp 该mcp可以赋予AI访问浏览器接口的能力,如让AI读取到浏览器网络面包上的信息,有助于前端页面的分析与开发 MC…
ES6之后的更新
ES6之后的更新 简短历史回顾 1995年,网景公司一位叫做 Brendan Eich 的工程师,为即将发布的 Netscape Navigator2 开发了一个叫做 Mocha(后来改名为 LiveScript) 的脚本语言,当时的计划是在客户端和服务端都使用它,在服务端的名字叫做 LiveWire. 后来为了赶上发布时间,网景与 Sun 公司结…
浏览器跨域问题和解决方案
跨域问题及解决方案 同源策略及跨域问题 同源策略是一套浏览器安全机制,当一个源的文档和脚本,与另一个源的资源进行通信时,同源策略就会对这个通信做出不同程度的限制。 简单来说,同源策略对 同源资源 放行,对 异源资源 限制 因此限制造成的开发问题,称之为跨域(异源)问题 同源和异源 源(origin) = 协议 + 域名 + 端口 例如: https…
js用fill创建二维数组的坑
JS用fill([])创建二维数组的坑 问题:使用fill([]),导致每一行的数组用相同的引用 //创建二维数组 let visited = new Array(3).fill([]) //visited[0] 和 visted[1]用的是同一个数组,引用相同 console.log(visited[0] === visited[1]) //tr…
Vue响应式的设计实现
Vue响应式的设计与实现 Vue的最大特点:它能够实现视图和数据的关联 目标1:实现视图和数据的关联 视图:虚拟dom 目标2:实现 【创建视图的过程】和【数据】的关联 目标3:实现【函数】和【数据】的关联 目标4:实现【函数】和【函数运行中用到的数据】的关联 从设计的角度看,要关联哪些数据要交给用户决定;问题是如何提供一种机制让用户来告诉我们哪些…
浏览器渲染原理面试题
面试题 浏览器是如何渲染页面的? 当浏览器的网络线程收到 HTML 文档后,会产生一个渲染任务,并将其传递给渲染主线程的消息队列。 在事件循环机制的作用下,渲染主线程取出消息队列中的渲染任务,开启渲染流程。 整个渲染流程分为多个阶段,分别是: HTML 解析、样式计算、布局、分层、绘制、分块、光栅化、画 每个阶段都有明确的输入输出,上一个阶段的输出…
ES2024
ES2024 ES2024(ES15)新特性如下: GroupBy分组 Promise.withResolvers 正则表达式的 /v 标志 1. GroupBy分组 GroupBy 是 ES2024 引入的新特性,它们为开发者提供了一种强大的分组功能,允许根据特定的回调函数对数组或对象中的元素进行分组。该新特性在分析统计数据时非常有用,比如将用户…
虚拟列表
虚拟列表要点 基础: 固定高度 三个元素: container容器,相对定位 phantom元素,用于模拟总的高度,提供滚动;绝对定位,top:0;left:0, content元素,可视区域,存放实际挂载的列表项,容器滚动时,同时向下移动,设置transformY,绝对定位,top:0;left:0, 需算出三个数据: startIndex:可视…
gitpull为什么默认用merge
git pull为什么默认用merge 先说结论:git pull实际上是git fetch && git merge,git官方默认使用git merge而不是git rebase,主要是因为:merge对新手开发者友好,虽然会产生merge提交历史,但不会像rebase那样破坏历史记录,并且merge的冲突处理是一次性的不需要分…
ES2023
ES2023 ES2023(ES14)带来的新特性有: findLast( ) 和 findLastIndex( ) Hashbang 语法 Change Array by Copy Methods Set 方法的增强 Symbols as WeakMap keys 1. findLast( ) 和 findLastIndex( ) findLas…