浏览器跨标签通信
获取句柄,父页面通过window.open()这个接口打开子页面,然后设置当子页面加载onload的时候,将传递的信息作为postMessage的参数;这时子页面上就可以调用window.onmessage接口,获取到父页面传递过来的信息
1
2
3
4
5
6
7
8
9//A.html
const child = window.open('child.html', 'child')
child.onload = () => {
child.postMessage('message', location.origin)
}
//B.html
window.onmessage = event => {
event.data
}localstorage、cookie
内存泄漏
- 意外的全局变量,使得这个变量挂在window对象上,没办法被清除,解决方法是:使用严格模式、将其设置为null
- 忘记关停定时器,导致定时器内的dom节点一直被引用,没办法回收
- 没有移除事件监听器
- 闭包
- 本以为已经移除了一些没用的dom节点,没想到移除的dom节点还被其他节点所引用,导致无法彻底移除