浏览器访问web项目页面CSS和JS文件加载时间太长,什么原因??

服务器环境:阿里云centos7.4 nginx1.14 php7.2 mysql5.7

项目在本地运行是没有问题的,加载也很快;但是部署到服务器上后,访问服务器上的web 项目,当浏览器清除缓存后,页面的一些js文件要加载40s才好,第二次访问就快了,然后再清除缓存又会加载好长时间。是不是没有把CSS和js文件压缩的原因呢。但是本地也是一样的代码,加载却很快。

图片描述

阅读 6k
6 个回答

你这一个bundle 体积也太大了。第二次访问快是因为是从本地缓存中拿的,所以快;第一次是请求你的服务器,还需要下载,所以慢。建议:

  1. 代码压缩:必须压缩代码,而且我怀疑你是不是把source-map 也打包进去了?
  2. 拆分bundle: 把必须的拆分出来,别的异步加载
  3. 服务器开启gzip

但是第一个样式表300KB花了8秒,不正常,太慢了,你得自己调查一下

首先说下为什么本地快,在阿里云上慢。
请求实际是在网络上多个交换机之间跳转以后,然后才到达目的服务器。
1、本地启动服务,本地访问页面,这个路由本来就很短。你在国外架设服务器,和在国内架设服务器,同样带宽的情况下,请求数据一般是国内的快一些。(这条的解决办法就是:CDN服务,阿里应该也有)
2、阿里云服务的带宽可能比较小,这也是影响请求速度的原因。(这条的解决办法:增加带宽吧,阿里云服务器的带宽和CPU核数、内存一样,可以增加的,价格具体不清楚)

3、还有就是,几个文件加载慢的文件比较大,加载时间长的这两个文件,一个3.5M,一个1.3M。
首先可以压缩,然后根据业务进行可以拆分,实施懒加载,这样的话,加载速度可能会快一些。

第二次加载比较快,是缓存的原因,因为本地js和css等的缓存,页面使用了缓存的js和css文件,清除以后,会重新加载这些文件,自然会慢很多。

压缩下静态,
再nginx 开启静态缓存cache expires 30d;
建议上cdn 七牛什么的

可以对 css js 等静态文件进行压缩。

先把大的js文件拆开!

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