- 博客(8)
- 收藏
- 关注
原创 web的五个Observer API
创建新的实例,传入回调函数和配置对象。观察指定目标元素,传入目标元素。停止观察指定目标元素。停止观察,断开与所有目标元素的关联。取消特定观察者目标上所有对Element的监听。开始对指定Element的监听。第一个参数为观察的元素。第二个参数为可选参数 BoxOptions,用来指定将以哪种盒子模型来观察变动,如content-box (默认值),border-box和device-pixel-content-box。结束对指定Element的监听。
2024-12-04 14:40:20
1226
原创 浏览器缓存
Disk Cache:硬盘缓存查找 disk cache 中是否有匹配,如有则使用,如没有则发送网络请求因TAB没关闭,因此memory cache是可用的,会被优先使用,其次才是disk cache浏览器不使用缓存,因此发送的请求头部均带有 Cache-control: no-cache,服务器直接返回 200 和最新内容先试图命中强缓存,然后再试图命中协商缓存。强缓存与协商缓存的共同点是:如果命中,都是从客户端缓存中加载资源,而不是从服务器加载资源数据;
2024-12-03 13:51:18
1062
原创 浏览器渲染
然而CSS需要完整的构建,不完整的CSS是无法使用的,因为CSS的每个属性都可以改变CSSOM,所以会存在这样一个问题:假设前面几个字节的CSS将字体大小设置为16px,后面又将字体大小设置为14px,那么如果不把整个CSSOM构建完整,最终得到的CSSOM其实是不准确的。如果脚本是外部的,会等待脚本下载完毕,再继续解析文档。确定渲染树所有的几何属性,如位置,大小等,最后输出一个盒子模型,盒子模型可精准的捕获到每个元素在屏幕上的准确位置与大小,然后遍历渲染树,调用渲染器的paint()方法显示。
2024-12-03 10:53:36
836
原创 作用域和执行上下文
全局上下文的变量对象初始化是全局对象。函数上下文的变量对象初始化只包括 Arguments 对象。在进入执行上下文时会给变量对象添加形参、函数声明、变量声明等初始的属性值。在代码执行阶段,会再次修改变量对象的属性值。在进入执行上下文时,首先会处理函数声明,其次会处理变量声明,如果变量名称跟已经声明的形式参数或函数相同,则变量声明不会干扰已经存在的这类属性。AO 实际上是包含了 VO 的。
2024-11-27 14:48:30
999
原创 原型与原型链
prototype 是函数才有的属性,这个属性指向一个对象,该对象正是调用该构造函数而创建的实例的原型。。。在最新 ES 规范里,prototype 被定义为:给其它对象。prototype 自己也是对象,只是被用以承担某个职能罢了。prototype 描述的是两个对象之间的某种(委托)关系(其中一个,为另一个提供属性访问权限)。每个函数都有一个 prototype 属性,它默认指向一个 Object 空对象(即称为:原型对象)。
2024-11-26 11:06:19
1074
原创 基于js实现大文件上传
FileReader接口允许 Web 应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用或对象指定要读取的文件或数据。文件对象可以从用户使用元素选择文件而返回的对象中获取,或者从拖放操作的对象中获取。开始读取指定的中的内容,一旦完成,result属性中将包含一个表示文件数据的对象。开始读取指定的中的内容。一旦完成,result属性中将包含一个表示文件数据的URL。
2024-09-08 19:41:27
1582
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人