每日前端签到(第127天)

第127天(2018-12-09)
  • [html] 如何刷新浏览器的应用缓存?
  • [css] 说说你对css的will-change属性的理解,它有什么作用呢?
  • [js] 请解释下NaN === NaN的结果
  • [软技能] 你了解什么是微前端吗?说说你对它的理解

题目一:
浏览器缓存可分为强缓存和协商缓存。
强缓存指的是设置了expires或者cache-control:max-age的请求,此类缓存在设定的过期时间之前刷新不会再次向浏览器发起请求,直接由客户端决定使用缓存进行页面展示。
协商缓存指的是未设置强缓存对应字段的缓存,浏览器会向服务器发送请求,并带IF-Modified-Since和IF-None-Match字段,服务器对应的返回字段为Last-Modified或 Etag,如果在etag未更改 或 last-modified 的时间早于IF-Modified-Since 则服务器不返回文件,使用浏览器本地缓存。

回到问题,如何刷新应用缓存。
当你直接点击浏览器的刷新按钮或者F5刷新时,浏览器会忽略强缓存,必定向服务器发起请求,但是如果服务器返回304则会继续使用本地缓存。
当点击Ctrl+F5 浏览器会忽略一切缓存(cache-control:no-cache),向服务器发起请求,并且一定会使用服务器的返回来渲染页面。
题目二:
告诉浏览器,这个元素的某些属性可能会频繁变动触发回流,要求浏览器给予资源进行优化,一般浏览器会给这个元素单独生成一个图层渲染,gpu加速等提前优化手段
不应过度使用这个属性,这属性只是性能出现问题的最后手段
题目三:
false
题目四:
随着业务的增长,小项目发展成了一个巨型项目,不好维护也不好部署
于是就拆分成一个容器项目以及多个子项目
子项目之间独立部署和开发
用容器来动态注册和卸载子项目

简单的就是用iframe操作
一个门户网站,内嵌一个Iframe动态切换Url加载子项目

现在要求用户体验高以及资源高效利用则开始微前端技术方案,如single-spa,umi-qiankun等
一个总的spa页面动态加载子项目线上的js进行注册模块,路由跳转等

你可能感兴趣的:(每日前端签到(第127天))