掘友等级
获得徽章 0
实现活体人脸检测,一般方法是前端录制视频然后调用后端的接口来检测,但也可以用纯前端的方法。引入tensorflow训练好的人脸特征点检测模型,预测 486 个 3D 人脸特征点,推断出人脸的近似面部几何图形。
day15.antd 是 react 主流组件库,我们经常使用它但可能并没有调试过它的源码。
我们可以在 renderWithHooks 里调用函数组件的地方打个条件断点,在调用想调试的组件时断住,这样我们就可以 step into 到该组件定义的地方
今天学习了使用abric.js 快速开发一个图片编辑器。框架用的vue,主要解决如何把fabric的实例对象共享给各个功能组件,区分出是未选中、单选、多选状态,然后将选中、取消选中事件暴露给各个功能组件,子组件根据状态进行独立的功能开发。
建立一个不能操作dom和调接口的环境如下:1)利用 iframe 创建沙箱,取出其中的原生浏览器全局对象作为沙箱的全局对象
2)设置一个黑名单,若访问黑名单中的变量,则直接报错,实现阻止\隔离的效果
3)在黑名单中添加 document 字段,来实现禁止开发者操作 DOM
4)在黑名单中添加 XMLHttpRequest、fetch、WebSocket 字段,实现禁用原生的方式调用接口
5)若访问当前全局对象中不存在的变量,则直接报错,实现禁用三方库调接口
6)最后还要拦截对 window 对象的访问,防止通过 window.document 来操作 DOM,避免沙箱逃逸。
day13.css实现防止按钮多次点击。先实现从禁用到点击的变换,将这个动画绑定到按钮上,缓动函数设置成阶梯曲线。
day11。Vite项目屏幕适配的两种方案.一种用rem,rem是指相对于根元素的字体大小的单位,在日常开发过程中我们通常把根元素(html/body)的字体设置为10px,方便于我们计算(此时子元素的1rem就相当于10px)。另一种用scale,在CSS3中,我们可以使用transform属性的scale()方法来实现元素的缩放效果。
day10.标题贴在最顶上的需求是比较常见的。比如表格的标题栏、网站的导航栏、手机通讯录的人名首字母标题等等。一般用 js 结合 css 来实现。以前确实是这样的,直到后来 position 属性新增了一个属性值 sticky ,就不需要用js了。
day9.TinyPNG使用智能的「有损压缩技术」来减少WEBP、JPEG和PNG文件的文件大小。通过选择性地减少图像中的「颜色数量」,使用更少的字节来存储数据。这种效果几乎是看不见的,但在文件大小上有非常大的差别。
Day8.Esbuild是一个打包工具,不同于其他的打包工具,Esbuild构建速度很快。一般而言,在 JS 开发的传统打包工具当中一般会频繁地解析和传递 AST 数据,比如 string -> TS -> JS -> string,这其中会涉及复杂的编译工具链,比如 webpack -> babel -> terser,每次接触到新的工具链,都得重新解析 AST,导致大量的内存占用。而 Esbuild 中从头到尾尽可能地复用一份 AST 节点数据,从而大大提高了内存的利用效率。
day6.抓包的目的就是为了获取到想要的原始数据,拿到数据以后,我们就可以做以下一些事情: 1. 分析数据传输协议。 2. 定位网络协议的问题。 3. 从数据包中获取想要的信息。 4. 将截取到的数据包进行修改,伪造,重发。
下一页