vue项目性能优化5,优化:CSS文件过大

基于webpack 3、vue 2和vue-cli 2的性能优化。

一般CSS文件不会过大,而且也没什么可优化的,毕竟CSS只是描述样式,没有逻辑,所以不会像JS出现重复引用的问题。
经过把css改成CDN加速之后,变小了一点,最后文件还是很大,打开文件查看,发现是图片的base64字符串被打包到css文件中了。不能继续优化了。
解决图片被转换成base64的问题,可以把图片上传到文件服务器,在项目里直接引用图片的链接,可以有效减小css文件的大小。
1、CDN加速

2、搜索整个项目,删除或者注释掉
import ‘element-ui/lib/theme-chalk/index.css’;
import ‘mint-ui/lib/style.css’
import “swiper/dist/css/swiper.min.css”;

尝试之后,失败的方案:
const cssCDN = [{
default: ‘https://cdn.bootcss.com/element-ui/2.10.0/theme-chalk/index.css3’,
backup: ‘https://cdn.jsdelivr.net/npm/element-ui@2.10.0/lib/theme-chalk/index.css’
}, {
default: ‘https://cdn.bootcss.com/mint-ui/2.2.13/style.min.css’,
backup: ‘https://cdn.jsdelivr.net/npm/mint-ui@2.2.13/lib/style.min.css’
}];

/**

  • CSS加载失败,就加载备份的CSS
  • 元素的onerror方法,在微信模拟器不执行,
  • 需要动态创建的link元素才可以。
  • @param data
    */
    function cssLoad(data) {
    let link;
    for (let index in data) {
    link = document.createElement(‘link’);
    link.rel = ‘stylesheet’;
    link.href = data[index].default;
    console.log(’“onload” in node =’ + (“onload” in link))
    link.onload = function() {
    //css加载成功
    };
    link.onerror = function() {
    //css加载失败,加载备份的CSS
    let css = document.createElement(‘link’);
    css.rel = ‘stylesheet’;
    css.href = data[index].backup;
    document.head.appendChild(css);
    };
    document.head.appendChild(link);
    }
let timer = setInterval(function () {
  let sheet;
  let rules;
  let cssLength;
  let cssNum = 0;
  let length = document.styleSheets.length;
  for (let i = 0; i < length; i++) {
	sheet = document.styleSheets[i];
	//链接不存在,跳过
	if(!sheet.href) {
	  continue;
	}
	console.log(sheet)
	if(sheet) {
	  console.log('sheet ================true')
	}
	try {
	  //严重:对于跨域的CSS文件,在谷歌浏览器,无法获取cssRules,只能用其它办法
	  //已放弃该方式
	  rules = sheet.rules ? sheet.rules : sheet.cssRules;
	  cssLength = rules.length;
	} catch (e) {
	  //如果CSS加载失败,例如链接打不开,会抛出异常,所以,需要捕获
	  cssLength = 0;
	}
	//如果CSS加载成功,就记录下来
	if (cssLength > 0) {
	  console.log('cssLength > 0 ================')
	  for (let index in data) {
		if (data[index].default === sheet.href || data[index].backup === sheet.href) {
		  cssNum ++;
		  console.log('index =' + index)
		  console.log('cssNum =' + cssNum)
		  break;
		}
	  }
	}
  }

  if(cssNum == data.length) {
	clearInterval(timer);
  }

}, 10000);

}

cssLoad(cssCDN);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue H5 性能优化的方法有很多,以下是一些常见的优化技巧: 1. 减少 HTTP 请求:合并和压缩 JavaScript 和 CSS 文件,使用图标字体代替图像,使用雪碧图等技术来减少网络请求次数。 2. 懒加载:对于大型的页面或者图片资源,使用懒加载技术来延迟加载,只有在需要的时候再加载,可以提升页面的初始加载速度。 3. 代码拆分:将代码拆分成多个小模块,按需加载,减少首次加载的文件大小和时间。 4. 缓存优化:使用浏览器缓存策略来缓存静态资源,减少重复请求。可以通过设置 HTTP 缓存头信息、使用 Service Worker 等技术实现。 5. 优化图片:使用合适的图片格式和压缩技术,如使用 WebP 格式替代 JPEG、PNG 格式,使用图片压缩工具来减小图片文件大小。 6. 减少重绘和回流:避免频繁的 DOM 操作和样式改变,可以使用 CSS3 动画代替 JavaScript 动画,利用 CSS3 的 transform 和 opacity 等属性来进行动画效果。 7. 优化页面渲染:使用虚拟列表、无限滚动等技术来优化大量数据的渲染,减少 DOM 元素的数量。 8. 使用路由懒加载:将路由按需加载,减少初始加载时的资源消耗。 9. 避免不必要的计算和渲染:在 Vue 组件中,尽量避免在模板中使用复杂的计算属性和方法,可以使用 v-if、v-show 等指令来控制组件的显示和隐藏。 10. 使用生产环境构建:在生产环境中使用 Vue CLI 或者其他打包工具进行构建时,可以开启代码压缩、混淆、去除注释等优化选项,减小文件大小。 这些是一些常见的 Vue H5 性能优化方法,根据具体的项目需求和场景,可以选择合适的优化策略来提升页面性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值