前端复习企划11-情景题解决方案
情景问题解决方案
关于缓存
对于频繁变动的资源,缓存应该怎么设置?
对于频繁变动的资源,首先需要使用 Cache-Control: no-cache
使浏览器每次都请求服务器,然后配合 ETag
或者 Last-Modified
来验证资源是否有效。
这样的做法虽然不能节省请求数量,但是能显著减少响应数据大小。
代码文件的变动,应该怎么缓存?
一般来说,现在都会使用工具来打包代码,那么我们就可以对文件名进行哈希处理,只有当代码修改后才会生成新的文件名。基于此,我们就可以给代码文件设置缓存有效期一年 Cache-Control: max-age=31536000
,这样只有当 HTML 文件中引入的文件名发生了改变才会去下载最新的代码文件,否则就一直使用缓存。
代码发布错了,如何强制更新?
和上面的问题一样,修改代码文件的hash文件名,浏览器可以自动的去下载
功能实现
如果要实现瀑布流,有什么需要注意的地方
节流、dom元素优化、两边高度统一
判断瀑布流滑动到的位置是否需要加载,循环遍历图片,获取他们的高度,在对他们进行排序,然后懒加载获取图片,进行批量加载。
兼容性
如果要兼容IE8有哪些需要注意的地方?
- 不能使用CSS3伪类 伪类选择器
- 布局要用relative absolute,不可以用flex和grid
- js不能用addEventListener,用DOM0级事件绑定
- 动画使用jq动画实现