事件监听选项的passive属性

关于touch事件监听选项的passive属性

描述

以前浏览器会先执行监听器函数,对于滑动事件来说,会存在一个问题:这个监听器里,有没有调用preventDefault()方法?
如果调了preventDefault(),那明显不应该进行滚动操作。
如果没调,那就最好先进行滑动,避免了先执行监听器造成的延迟卡顿。

localStorage存储容量

localStorage,能存储的都是字符串,按UTF-16字符编码存储,一个字符占2个字节

js里的字符串也是UTF-16编码。js里的字符串length表示字符串个数,因此占用存储空间为字符数*2 (内存和磁盘都一样)

所以,浏览器ls上限5MB的话,实际能存储的js字符数减一半

服务端发送事件(SSE)

客户端实现

var urls = 'http://127.0.0.1:8844/stream'
var sse = new EventSource(urls)
sse.onopen = function (e) {
console.log(e.type)
}
sse.onerror = function (e) {
console.log(e)
}
sse.onmessage = function (e) {
console.log(e.data)
}
sse.addEventListener ('hello', function (e) {
// console.log(e.type)
console.log(e.data)
})

长轮询

Comet、长轮询、HTTP推送
利用长时间保留的 HTTP 请求(“挂起的 GET”)来让服务器向浏览器推送 数据的技术,经常被称作 Comet。不过,有时候也有人用其他名字称呼这种技术,比如“保留 AJAX”、“AJAX 推送”或“HTTP 推送”。

Chrome调试远程设备白屏解决办法

Chrome调试远程设备白屏,多数情况都是没有科学上网导致的, 但我遇到了另一种情况。

经过一番google,原来是缓存导致的。

解决办法如下:
在白屏的devtool界面下,再次打开devtool,清除缓存。重连后正常。

浏览器发送OPTIONS请求

浏览器会发送OPTIONS请求

  1. 使用了GET, HEAD or POST 之外的动词
  2. 如果POST以下Content-Type: application/x-www-form-urlencoded, multipart/form-data,text/plain之外的类型
  3. 请求中设置了自定义头部