标签: Web
包含此标签的文章 "Web".
在单页应用中 index.html 该使用什么 cache-control ?
index.html 是 SPA 单页应用的入口, js/css 等静态文件路径都在这里被定义。 所以一般而言,index.html 的缓存控制指令会被设置为 private, max-age=0。 这样设置后, CDN 和浏览器都不会缓存 index.html,当代码更新时也不会导致用户侧出现没有更新的状态。 但是这
跨域 cross-origin 和跨站 cross-site 是不同的概念
跨域一般用于同源策略,不同的协议、主机以及端口都算作跨域: - 协议不同 http://example.com 和 https://example.com - 主机不同,即使二级域名相同 https://www.example.com 和 https://example.com - 端口不同 http://exampl
RegExp.prototype.test() 不要使用全局正则
test() 方法接受一个字符串,如果匹配返回 true。 今天遇到一个坑,如下面所示: 这是因为 regexp 对象内部有个 lastIndex 属性,每次运行都会改变这个 lastIndex 属性,使得正则对象从这个新的索引开始匹配。 所以上面的第二次正则匹配返回了 false。 如果要修改这种错误,可以手动设置
Node.js 定时任务
有这样的一个需求,每 1 秒进行一项任务,那么就可以写成下面的方式: 根据打印日志,可以看到就算任务没有完成,那么也会自动调用 job 为此需要加一个"锁",如果已经加锁,那么不再需要运行 job 如下面日志所示,那么现在任务就顺序执行了 不过这也有个问题,假设需要任务之前间隔是固定的,比如上面的1秒,那么这个解决方式
Nodejs 中全局 this 的指向
Nodejs 现在支持两种模块机制,一种是 CommonJS,一种是官方规范 ECMAScript 模块。 全局 this 在 CommonJS 不是指向 global(或者说 globalThis),而是指向 module.export。 这是因为 CommonJS 本质上是用函数包裹当前文件生成的一个作用域,所以能
ECMAScript2021: 逻辑赋值运算符
目前 js 支持 3 种逻辑赋值运算符: 与数学意义的逻辑运算符不同的是,逻辑赋值符在不符合逻辑条件下不会触发 setter 实际使用中,逻辑赋值运算符能提供更好的性能,如下面代码: 上述代码中赋值给 .innerHTML 属性会删除 msgElement 元素内部子元素,然后插入从新分配的字符串后再进行解析,而逻辑赋
解决 nodejs 在 macOS Catalina (v10.15) 无法使用 node-gyp 问题
升级到 macos v10.15 之后,nodejs无法正常编译 c++ 库,node-gyp 文档给了解决方案,本篇是其的简短翻译。 --- 当升级到 macOS Catalina 或者使用 Software Update 会造成 node-gyp 安装失败。一般在 npm install 的时候会遇到下面这个错误: