关于单页面js加载问题

如果项目比较大,使用的是单页面这种形式,将所有代码打包到一个js中,第一次加载会不会很慢,有没有什么解决方案

阅读 3.5k
3 个回答

可以将低频功能封装成模块然后异步动态的加载,大部分前端框架的router组件都有这功能
angular2有asynchronous-routing
vue有懒加载

JS才几KB,就算你把几个项目用上的JS都打包起来,都没有网站使用图片的容量大,并且你要确保小设备显示效率也不能加太多的JS效果。你不打包才容易有问题,如果太多请求,服务器可能因请求数有限制而影响加载速度。

如果你有很多零散的JS, CSS, JPG,又不容易把它合并起来,那可以使用CDN来解决。

经典的单页面应用首屏渲染问题

  1. cdn

  2. 用MD5版本号区分,尽量利用浏览器缓存机制,用移动端那种版本发布节奏

  3. 服务端渲染

  4. 如楼上所说,其实如果js文件需要加载的多,TCP三次握手够你受的,就算是多页面应用现在都是打包的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题