获得徽章 0
强缓存:
expired设置时间和本地时间对比决定是否重新请求。缺点本地时间可以修改
cache-control设置固定时间
时间过期的话重新请求否则继续使用缓存。
协商缓存:
last-modified对比数据库更新时间决定是否取缓存。通过If-modified-since的时间值检查资源是否变化。
Etag通过哈希值的变化决定是否取缓存。通过if-none-match的哈希值检查资源是否变化。
etag比lastmodified优先级高。
expired设置时间和本地时间对比决定是否重新请求。缺点本地时间可以修改
cache-control设置固定时间
时间过期的话重新请求否则继续使用缓存。
协商缓存:
last-modified对比数据库更新时间决定是否取缓存。通过If-modified-since的时间值检查资源是否变化。
Etag通过哈希值的变化决定是否取缓存。通过if-none-match的哈希值检查资源是否变化。
etag比lastmodified优先级高。
展开
评论
2
package-lock.json yarn-lock.json作用:保证install后产生的依赖结构。因为依赖结构不确定性导致扁平化结果的不确定所以需要锁定
npm和yarn的扁平化平铺包会出现幽灵依赖。
pnpm通过包名和版本号的形式实现隔离复用。
pnpm通过.pnpm-store的存储目录,结合硬链接和软连接方式解决了空间效率和安装速度
npm和yarn的扁平化平铺包会出现幽灵依赖。
pnpm通过包名和版本号的形式实现隔离复用。
pnpm通过.pnpm-store的存储目录,结合硬链接和软连接方式解决了空间效率和安装速度
展开
评论
点赞
赞了这篇文章
赞了这篇文章
前端路由的实现原理【hash&history】:
哈希通过在浏览器 url 后加哈希值,利用 hashchange 事件监听 url 变化;history 依靠 pushState 修改 url 且不刷新,通过 popState 监听前进后退时的 url 变化。
哈希通过在浏览器 url 后加哈希值,利用 hashchange 事件监听 url 变化;history 依靠 pushState 修改 url 且不刷新,通过 popState 监听前进后退时的 url 变化。
评论
点赞
在新建仓库拉取其他仓库代码
git remote add <remote-name> <remote-url>
git fetch <remote-name>
git merge<remote-name>/<branch-name> --allow-unrelated-histories
git remote add <remote-name> <remote-url>
git fetch <remote-name>
git merge<remote-name>/<branch-name> --allow-unrelated-histories
展开
评论
点赞
在浏览器中运行,Node.js。
基于 WebSocket 的 SIP(在 Web 应用程序中使用真正的 SIP)
音频/视频通话 (WebRTC) 和即时消息
轻!
易于使用且功能强大的用户 API
基于 WebSocket 的 SIP(在 Web 应用程序中使用真正的 SIP)
音频/视频通话 (WebRTC) 和即时消息
轻!
易于使用且功能强大的用户 API
4
1