摘要:
H5 标准新增的本地存储 localStorage 已经很熟悉了,但是还有个 storage 事件监听确实比较陌生,这个事件可以通过更新 localstorage 来触发,而且当前在同一个浏览器下打开的所有同源页面都可以监听得到!下面我们就来具体了解一下: 一、Storage事件介绍 1、stora 阅读全文
摘要:
BroadCast Channel 可以帮我们创建一个用于广播的通信频道。当所有页面都监听同一频道的消息时,其中某一个页面通过它发送的消息就会被其他所有页面收到。它的API和用法都非常简单。下面我们来简单了解一下: 一、Broadcast Channel 是什么 1、首先,我们想一个问题:在前端如何 阅读全文
摘要:
一、hash、hashchange 事件介绍 1、hash 是什么? hash 属性是一个可读可写的字符串,该字符串是 URL 的锚部分,一般有当前页面中 href 中 # 地址触发。hash 即 URL 中 # 字符后面的部分,具有如下特点: 使用浏览器访问网页时,如果网页URL中带有hash,页 阅读全文
摘要:
一、window下自带的 name 属性 不知道大家有没有发现这样一种情况:在控制台里直接输出未声明变量,正常情况应该是会报错的,而且声明未赋值的变量输出应该是undefined;但是偏偏就个别特例,就是name属性。 其实 window 自身就带有 name 这个属性,在控制台输入window可以 阅读全文
摘要:
在浏览器中,我们可以同时打开多个Tab页,每个Tab页可以粗略理解为一个“独立”的运行环境,即使是全局对象也不会在多个Tab间共享。然而有些时候,我们希望能在这些“独立”的Tab页面之间同步页面的数据、信息或状态。 正如下面这个例子:我在列表页点击“收藏”后,对应的详情页按钮会自动更新为“已收藏”状 阅读全文
摘要:
postMessage 是 html5 引入的API,postMessage()方法允许来自不同源的脚本采用异步方式进行有效的通信,可以实现跨文本文档、多窗口、跨域消息传递,多用于窗口间数据通信,这也使它成为跨域通信的一种有效的解决方案。 一、Window postMessage() 方法介绍 po 阅读全文
摘要:
一、问题 如果一个请求跨域了,这个请求会不会在服务端被执行? 这个问题看似简单,但是其实这一个问题就足以看出大家对跨域的理解,如果平时只是了解了个概念, 那这个问题大概率不会答的那么好。 二、解决思路 1、其实这个问题主要要从以下几个方面去考虑: (1)跨域究竟是谁的策略? (2)在什么时机会拦截请 阅读全文
摘要:
一、问题背景 为了防止信息泄露或知识产权被侵犯,在web的世界里,对于页面和图片等增加水印处理是十分有必要的,水印的添加根据环境可以分为两大类,前端浏览器环境添加和后端服务环境添加,根据实现方式又可以分为两大类,显性水印和数字水印。简单对比一下这两种方式的特点: 1、前端浏览器加水印: (1)减轻服 阅读全文
摘要:
本篇文章不会更多侧重于具体技术实现,而是尝试从更高角度出发,分析为什么要这么做,这些设计能解决什么问题,成本和收益如何。 一、综合考量 1、核心思想 解决问题:前端架构的设计,应是用于解决已存在或者未来可能发生的技术问题,增加项目的可管理性、稳定性、可扩展性。 人效比:对于需要额外开发工作量的事务, 阅读全文
摘要:
看到这个问题,相信大家都觉得这个题目实在基础的不能再基础了。随手百度一下,就能看到很多人说:基本类型存在栈中,引用类型存在堆中。真的这么简单么? 如果js中基础类型是存在栈里的,那为什么默认栈区大小为984KiB的V8可以允许声明500MiB大小的字符串呢?如果基础类型也是存在堆里的,又是怎么gc的 阅读全文