Skip to content

Commit

Permalink
docs: update javascript bom document
Browse files Browse the repository at this point in the history
  • Loading branch information
feng-zhang0712 committed Jan 2, 2025
1 parent 87f3c2a commit 4d14f38
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 13 deletions.
17 changes: 10 additions & 7 deletions _posts/javascript/javascript-tutorial/2024-10-18-bom.md
Original file line number Diff line number Diff line change
Expand Up @@ -1342,7 +1342,10 @@ Storage 接口用于脚本在浏览器保存数据。两个对象部署了这个
- `sessionStorage` 保存的数据用于浏览器的一次会话(session),当会话结束(通常是窗口关闭),数据被清空;
- `localStorage` 保存的数据长期存在,下次访问该网站的时候,网页可以直接读取以前保存的数据。
除了保存期限的长短不同,这两个对象的其他方面都一致。保存的数据都以“键值对”的形式存在。所有的数据都是以**文本格式**保存。这个接口能够使用的存储空间一般为 5M ~ 10M 左右。
除了保存期限的长短不同,这两个对象的其他方面都一致。
- 保存的数据都以“**键值对**”的形式存在。所有的数据都是以**文本格式**保存。每个域名的存储上限一般是 5 MB - 10 MB
- Storage 接口受**同域限制**。某个网页存入的数据,只有同域下的网页才能读取,如果跨域操作会报错。
### 8.2 属性和方法
Expand Down Expand Up @@ -1813,12 +1816,12 @@ Worker 线程一旦新建成功,就会始终运行,不会被主线程上的
Web Worker 有以下几个使用注意点。
- 同源限制:分配给 Worker 线程运行的脚本文件,必须与主线程的脚本文件同源。
- DOM 限制:Worker 线程所在的全局对象,与主线程不一样,无法读取主线程所在网页的 DOM 对象,也无法使用 `document``window``parent` 这些对象。但是,Worker 线程可以使用 `navigator` 对象和 `location` 对象。
- 全局对象限制:Worker 的全局对象 `WorkerGlobalScope`,不同于网页的全局对象 Window,很多接口拿不到。比如,理论上 Worker 线程不能使用 `console.log`,因为标准里面没有提到 Worker 的全局对象存在 `console` 接口,只定义了 Navigator 接口和 Location 接口。不过,浏览器实际上支持 Worker 线程使用 `console.log`,保险的做法还是不使用这个方法。
- 通信联系:Worker 线程和主线程不在同一个上下文环境,它们不能直接通信,必须通过消息完成。
- 脚本限制:Worker 线程不能执行 `alert()``confirm()`,但可以使用 XMLHttpRequest 对象发出 AJAX 请求。
- 文件限制:**Worker 线程无法读取本地文件**,即不能打开本机的文件系统(`file://`),**它所加载的脚本,必须来自网络**
- **同源限制**:分配给 Worker 线程运行的脚本文件,必须与主线程的脚本文件同源。
- **DOM 限制**Worker 线程所在的全局对象,与主线程不一样,无法读取主线程所在网页的 DOM 对象,也无法使用 `window``document``parent` 这些对象。但是,Worker 线程可以使用 `navigator` 对象和 `location` 对象。
- **全局对象限制**Worker 的全局对象 `WorkerGlobalScope`,不同于网页的全局对象 Window,很多接口拿不到。比如,理论上 Worker 线程不能使用 `console.log`,因为标准里面没有提到 Worker 的全局对象存在 `console` 接口,只定义了 Navigator 接口和 Location 接口。不过,浏览器实际上支持 Worker 线程使用 `console.log`,保险的做法还是不使用这个方法。
- **通信联系**Worker 线程和主线程不在同一个上下文环境,它们不能直接通信,必须通过消息完成。
- **脚本限制**Worker 线程不能执行 `alert()``confirm()`,但可以使用 XMLHttpRequest 对象发出 AJAX 请求。
- **文件限制****Worker 线程无法读取本地文件**,即不能打开本机的文件系统(`file://`),**它所加载的脚本,必须来自网络**
### 15.2 基本用法
Expand Down
12 changes: 6 additions & 6 deletions _posts/question-collection.md
Original file line number Diff line number Diff line change
Expand Up @@ -324,16 +324,16 @@
- [使用 Promise 实现:限制异步操作的并发个数,并尽可能快的完成全部](https://fe.ecool.fun/topic/462ff8a8-29ba-4e49-88ad-d60e7b3f4ee8?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [使用 Promise 封装一个异步加载图片的方法](https://fe.ecool.fun/topic/584f7b53-5e4b-48b9-ad7b-ae4789647ada?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [实现mergePromise函数](https://fe.ecool.fun/topic/9f0dbfc0-bd61-4956-8093-d604ac401983?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [怎么实现一个扫描二维码登录PC网站的需求?](https://fe.ecool.fun/topic/e928aade-65d6-438d-be11-8250f7784f4d?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [怎么实现虚拟列表?](https://fe.ecool.fun/topic/875d7fc5-bc05-44e7-a017-60849c426ec9?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [实现扫描二维码登录PC网站](https://fe.ecool.fun/topic/e928aade-65d6-438d-be11-8250f7784f4d?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [实现虚拟列表](https://fe.ecool.fun/topic/875d7fc5-bc05-44e7-a017-60849c426ec9?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [如果要设计一个转盘组件,你会考虑哪些方面?有哪些是需要和业务方确认的技术细节?另外,如何从前端的角度进行防刷?](https://fe.ecool.fun/topic/5a7e6ba9-31c0-45c2-8997-1ce10f2bf330?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [写出一个函数 trans,将数字转换成汉语的输出,输入为不超过10000亿的数字。](https://fe.ecool.fun/topic/903ad6ce-2c81-4d82-a356-536e4629cfa3?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [实现一个数字转中文的方法](https://fe.ecool.fun/topic/38114327-a110-4a75-8745-534924338657?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [需要在本地实现一个聊天室,多个 tab 页相互通信,不能用 websocket,你会怎么做?](https://fe.ecool.fun/topic/7053c84f-1316-43f2-a2ba-23fb00318220?orderBy=default&order=desc&tagId=10&exerciseCate=2&ignoreMaster=1&difficulty=)
- [如何使用 js 计算一个 html 页面有多少种标签](https://fe.ecool.fun/topic/e84bcf8c-1ee4-4c28-8e64-875b485369b5?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [在本地实现一个聊天室,多个 tab 页相互通信,不能用 websocket](https://fe.ecool.fun/topic/7053c84f-1316-43f2-a2ba-23fb00318220?orderBy=default&order=desc&tagId=10&exerciseCate=2&ignoreMaster=1&difficulty=)
- [x] [使用 js 计算一个 html 页面有多少种标签](https://fe.ecool.fun/topic/e84bcf8c-1ee4-4c28-8e64-875b485369b5?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [ES6 - ES12](https://fe.ecool.fun/topic/e9a726d4-0ce9-4e04-88c3-9e42bad984f7?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [字符串的常用方法有哪些](https://fe.ecool.fun/topic/39513146-d7a4-41ad-963f-ba32242ddc55?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [数组的常用方法有哪些](https://fe.ecool.fun/topic/4b009a64-6d98-4469-89d4-9c254d682fa6?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [x] [字符串的常用方法有哪些](https://fe.ecool.fun/topic/39513146-d7a4-41ad-963f-ba32242ddc55?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [x] [数组的常用方法有哪些](https://fe.ecool.fun/topic/4b009a64-6d98-4469-89d4-9c254d682fa6?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [x] [ES6 Iterator](https://fe.ecool.fun/topic/c188ea2f-8882-413c-af52-3ccce36f35cf?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [ES6 Reflect](https://fe.ecool.fun/topic/18682a73-0c4e-4859-96fd-2a6fde7587b7?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
- [ES6 Decorator?使用场景有哪些?](https://fe.ecool.fun/topic/5116f1a8-f1b2-49ec-bbfc-5550861762da?orderBy=default&order=desc&tagId=10&exerciseCate=0&ignoreMaster=1&difficulty=)
Expand Down

0 comments on commit 4d14f38

Please sign in to comment.