Skip to content

Commit 3e2bd78

Browse files
author
zhouhongxuan
committed
fix(post): 修改部分链接地址
1 parent 74e2165 commit 3e2bd78

25 files changed

+369
-352
lines changed

source/_posts/a-robust-equality-operation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ JavaScript 中还有一个叫 [`NaN`](https://developer.mozilla.org/zh-CN/docs/W
117117

118118
它有一个特点 —— 自己不等于自己:
119119

120-
![](https://user-gold-cdn.xitu.io/2020/1/4/16f6f35688449594?w=328&h=36&f=png&s=2128)
120+
![](/img/a-robust-equality-operation/16f6f35688449594.png)
121121

122122
这可能会导致判断出现 I 类错误(弃真错误):原本是相同的,却被我们判断为不相同。
123123

source/_posts/async-programming-in-js.md

Lines changed: 76 additions & 43 deletions
Large diffs are not rendered by default.

source/_posts/broadcast-channel.md

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ tags:
1515

1616
## Broadcast Channel 是什么?
1717

18-
在前端,我们经常会用`postMessage`来实现页面间的通信,但这种方式更像是点对点的通信。对于一些需要广播(让所有页面知道)的消息,用`postMessage`不是非常自然。Broadcast Channel 就是用来弥补这个缺陷的。
18+
在前端,我们经常会用 `postMessage` 来实现页面间的通信,但这种方式更像是点对点的通信。对于一些需要广播(让所有页面知道)的消息,用 `postMessage` 不是非常自然。Broadcast Channel 就是用来弥补这个缺陷的。
1919

2020
顾名思义,Broadcast Channel 会创建一个所有同源页面都可以共享的(广播)频道,因此其中某一个页面发送的消息可以被其他页面监听到。
2121

@@ -33,11 +33,11 @@ Broadcast Channel 的 API 非常简单易用。
3333
const bc = new BroadcastChannel('alienzhou');
3434
```
3535

36-
可以接受一个`DOMString`作为 name,用以标识这个 channel。在其他页面,可以通过传入相同的 name 来使用同一个广播频道。用 MDN 上的话来解释就是:
36+
可以接受一个 `DOMString` 作为 name,用以标识这个 channel 。在其他页面,可以通过传入相同的 name 来使用同一个广播频道。用 MDN 上的话来解释就是:
3737

3838
> There is one single channel with this name for all browsing contexts with the same origin.
3939
40-
该 name 值可以通过实例的`.name`属性获得
40+
该 name 值可以通过实例的 `.name` 属性获得
4141

4242
```JavaScript
4343
console.log(bc.name);
@@ -62,31 +62,32 @@ bc.onmessageerror = function(e) {
6262
};
6363
```
6464

65-
> 除了为`.onmessage`赋值这种方式,也可以使用`addEventListener`来添加`'message'`监听。
65+
> 除了为 `.onmessage` 赋值这种方式,也可以使用 `addEventListener` 来添加 `'message'` 监听。
6666
6767
### 发送消息
6868

69-
Broadcast Channel 实例也有一个对应的`postMessage`用于发送消息:
69+
Broadcast Channel 实例也有一个对应的 `postMessage` 用于发送消息:
7070

7171
```JavaScript
72-
bc.postMessage('hello')
72+
bc.postMessage('hello');
7373
```
7474

7575
### 关闭
7676

7777
可以看到,上述短短几行代码就可以实现多个页面间的广播通信,非常方便。而有时我们希望取消当前页面的广播监听:
78-
- 一种方式是取消或者修改相应的`'message'`事件监听
79-
- 另一种简单的方式就是使用 Broadcast Channel 实例为我们提供的`close`方法。
78+
79+
- 一种方式是取消或者修改相应的 `'message'` 事件监听
80+
- 另一种简单的方式就是使用 Broadcast Channel 实例为我们提供的 `close` 方法。
8081

8182
```JavaScript
8283
bc.close();
8384
```
8485

8586
两者是有区别的:
8687

87-
取消`'message'`监听只是让页面不对广播消息进行响应,Broadcast Channel 仍然存在;而调用`close`方法这会切断与 Broadcast Channel 的连接,浏览器才能够尝试回收该对象,因为此时浏览器才会知道用户已经不需要使用广播频道了。
88+
取消 `'message'` 监听只是让页面不对广播消息进行响应,Broadcast Channel 仍然存在;而调用 `close` 方法这会切断与 Broadcast Channel 的连接,浏览器才能够尝试回收该对象,因为此时浏览器才会知道用户已经不需要使用广播频道了。
8889

89-
在关闭后调用`postMessage`会出现如下报错
90+
在关闭后调用 `postMessage` 会出现如下报错
9091

9192
![](/img/169d80b1620cdac9.png)
9293

@@ -106,12 +107,4 @@ Broadcast Channel 是一个非常好用的多页面消息同步 API,然而兼
106107

107108
![](/img/169d80efd65b5401.png)
108109

109-
> 好在我们还有些其他方案可以作为补充(或者作为polyfill),其他的前端跨页面通信可以参考我的另一篇文章[《前端跨页面通信的方法》](https://juejin.im/post/5ca04406f265da30ac219ccc)
110-
111-
> 对文章感兴趣的同学欢迎关注 [我的博客 >> https://github.com/alienzhou/blog](https://github.com/alienzhou/blog)
112-
113-
---
114-
115-
![](/img/16f6f67316cf3a36.png)
116-
117-
---
110+
好在我们还有些其他方案可以作为补充(或者作为 polyfill ),其他的前端跨页面通信可以参考我的另一篇文章[《前端跨页面通信的方法》](/2019/04/01/cross-tab-communication-in-frontend/)

0 commit comments

Comments
 (0)