20190116Q:什么是前端缓存?适用于哪些场景?有什么不同?参考答案前端缓存分为两部分:http缓存,浏览器缓存,http缓存,强缓存,强缓存主要由响应头中的Cache-Control和Expires这两个字段控制Cache-Control值的理解:max-age指定缓存的最大有效时间(单位为s)public指定响应将被缓存并在多个用户之间共享private响应仅用作私有缓存,不能在用户之间共享no-cache指定否responsecache,表示该资源不被缓存no-store绝对禁止缓存Expires理解:缓存过期时间用于指定资源过期的时间。是服务器端的特定时间点,需要和Last-modified配合使用。Last-modified了解服务器端文件的最后修改时间,需要结合cache-control一起使用,是检查服务器端资源是否更新的一种方式。ETag理解为根据实体内容生成一个hash字符串来标识资源的状态,由服务器生成。浏览器会将这个字符串发回服务器,验证资源是否被修改协商缓存(304)协商缓存是指当强缓存机制检测到缓存无效时,服务器需要重新验证浏览器缓存CookieLocalStorageSessionStorageServiceWorkerCookieCookie主要用于存储用户信息,LocalStorage中4KBLocalStorage中的数据会一直保存在浏览器中,直到用户清除浏览器缓存数据。容量为5MBSessionStorage的SessionStorage其他属性与LocalStorage相同,不同的是当页面关闭时,ServiceWorker会被清空。为了提高webapp的用户体验,可以实现离线应用消息推送等一系列功能,可以看作是一个独立于浏览器的Javascript代理脚本,离线也可以提供基本功能状态。出于安全考虑,ServiceWorker只能在HTTPS协议下使用上一个日常问题:元素水平居中和垂直居中的方式有??哪些?关于JS每日问答JS每日问答可以看作是一个语音答疑社区。每天用语音60秒以内的碎片化时间完成当天的试题。群主会在次日0:00推送当天的参考答案。仅限于完成当天的任务,更多的是查漏补缺。学习群里其他同学的优秀答题思路,加入JS每日一题
