20190827BIGO一面总结

(1) 前端优化相关:
A. defer async 参考 https://www.cnblogs.com/jiasm/p/7683930.html
为了解决的问题:第三方脚本的延迟等问题导致白屏 两者都不会阻塞DOM的渲染
前端优化方式:
将 script 标签放在 body 底部,因为 JS 文件执行会阻塞渲染。当然也可以把 script 标签放在任意位置然后加上 defer ,表示该文件会并行下载,但是会放到 HTML 解析完成后顺序执行。对于没有任何依赖的 JS 文件可以加上 async ,表示加载和渲染后续文档元素的过程将和 JS 文件的加载与执行并行无序进行。
defer会异步下载,不会影响到后续dom的渲染。多个defer顺序执行。defer脚本会在页面渲染完毕后,DOMContentLoaded事件前执行。
async则是异步加载脚本,先加载完的就先执行,与DOMContentLoaded没有必然的先后顺序。
cache-control和Expires都是在响应头中设置的
如何判断一个文件是从缓存中取出的还是新请求的 根据返回的304状态码
(2) SEO 单页应用和多页应用
多页应用:每次页面跳转都会返回新的html文档。首屏时间快,SEO效果好,页面切换慢。
单页应用:第一次进入页面会请求一个html文档,切换组件时JS会感知路径的变化,从而动态地将当前页面的内容清除掉,然后将下一个页面的内容挂载。首屏时间慢,SEO效果差,因为不仅要加载html,还有其他的所有公用资源。同时,js渲染出的内容对于SEO识别效果不好。
(3) 倒计时如何实现
(4) Promise实现原理、async/await、generator
(5) webpack自己搭建过吗
(6) vue源码是否看过
(7) 懒加载
vue-router异步组件+webpack分割实现

Vue.component('async-webpack-example', function (resolve) {
  // 这个特殊的 `require` 语法将会告诉 webpack
  // 自动将你的构建代码切割成多个包,这些包
  // 会通过 Ajax 请求加载
  require(['./my-async-component'], resolve)
})

返回promise的方式

Vue.component(
  'async-webpack-example',
  // 这个 `import` 函数会返回一个 `Promise` 对象。
  () => import('./my-async-component')
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值