crm-vue项目上线前对加载速度以及兼容IE的一些方法
一、关于IE浏览器适配
打包前我们可以在package.json文件做如下配置
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
],
如果你想指定兼容IE某个版本可以这么写:"ie 11"
配置说明:
> 5% // 全球使用情况统计选择的浏览器版本。 >=,<也<=工作。
> 5% in US // 使用美国使用情况统计。它接受两个字母的国家/地区代码。
> 5% in alt-AS // 使用亚洲地区使用情况统计。可在以下位置找到所有地区代码的列表caniuse-lite/data/regions。
> 5% in my stats // 使用自定义使用数据。
cover 99.5% // 提供覆盖的最流行的浏览器。
cover 99.5% in US // 与上述相同,使用双字母国家代码。
cover 99.5% in my stats // 使用自定义使用数据。
maintained node versions // 所有Node.js版本,仍由 Node.js Foundation 维护。
node 10和node 10.4 // 选择最新的Node.js 10.x.x 或10.4.x发布。
current node // Browserslist目前使用的Node.js版本。
extends browserslist-config-mycompany // 从browserslist-config-mycompanynpm包中获取查询 。
ie 6-8 // 选择包含范围的版本。
Firefox > 20 // Firefox的版本比20更新 >=,<并且也可以<=工作。
iOS 7 // iOS浏览器版本7直接。
Firefox ESR // 最新的[Firefox ESR]版本。
unreleased versions或unreleased Chrome versions // alpha和beta版本。
last 2 major versions或last 2 iOS major versions // 最近2个主要版本的所有次要/补丁版本。
since 2015或last 2 years // 自2015年以来发布的所有版本(也since 2015-03和since 2015-03-10)。
dead // 来自last 2 version查询的浏览器,但全球使用统计数据少于0.5%,且24个月内没有官方支持或更新。现在是IE 10,IE_Mob 10,BlackBerry 10, BlackBerry 7,和OperaMobile 12.1。
last 2 versions // 每个浏览器的最后两个版本。
last 2 Chrome versions // Chrome浏览器的最后两个版本。
defaults // Browserslist的默认浏览器(> 0.5%, last 2 versions, Firefox ESR, not dead)。
not ie <= 8 // 排除先前查询选择的浏览器。
npx browserslist 在项目目录中运行以查看选择了哪些浏览器。
npx browserslist
也可以通过 browserl.ist 网站查看选择了哪些浏览器。
https://browserl.ist/
二、提升加载速度的方法
对路由的处理:
// 把通常的引入方法,换成异步引入
import wechat from '../pages/login/wechat.vue'
import pdfView from '../pages/pdf-view.vue' // 1.懒加载通常写法(打包后)
let pdfView = (resolve) => {
return require.ensure([], () => {
console.log('pdfView')
resolve(require('../pages/pdf-view.vue'))
}, 'pdfView')
}
// require中,'pdfView'参数是打包后组件的名字
// require.ensure()语法参见:https://www.html.cn/doc/webpack2/guides/code-splitting-require/ // 2.懒加载新写法
let wechat = () => import(/* webpackChunkName: "wechat" */'../pages/login/wechat.vue')
// 多行注释可忽略,主要是为了给打包后组件自定义命名
// 是通过注释语法来提供chunk name,但是webpack的版本要高于2.4的版本。 routes: [{
path: '/pdf',
component: pdfView,
meta: {
navWebTitle: '电子合同',
parentTitle: '产品详情',
toParentTitle: 'goBack',
noWebNav: true,
navTitle: '电子合同'
}
},
{
path: '/wechat',
component: wechat
},
]
对vue组件,动态加载
// vue组件按需加载
// 组件里面:
export default {
components: {
aview: function (resolve) {
require(["./a.vue"], resolve);
},
bview: function (resolve) {
require(["./b.vue"], resolve);
}
},
data: function () {
return {
current: "",
myData: "",
show: false
}
},
methods: {
changeComponents: function (view) {
if (view == 'aview') {
this.myData = 'a1000';
} else {
this.myData = 'b1000';
}
this.current = view;
}
}
}
// 模板里面:
`<component: is = "current": data = "myData"></component>`
对head内prefectch标签处理:
工程预渲染时生成的prefetch标签,在新版本浏览器里中自动加载网站所需所有资源;
我们删除懒加载模块的prefetch,降低带宽压力,按需加载:
我的工程是vue2,在vue.config.js里添加配置:
if (process.env.NODE_ENV === 'production') { // 生产环境
config.plugins.delete('prefetch');
}
这里是官方指南:
https://cli.vuejs.org/zh/guide/html-and-static-assets.html#preload
--------------------- 更新于20190422 @ziChin --
crm-vue项目上线前对加载速度以及兼容IE的一些方法的更多相关文章
- Vue项目优化首屏加载速度
Vue项目部署上线后经常会发现首屏加载的速度特别慢:那么有那写能做的简单优化呢 一.路由的懒加载 路由懒加载也就是 把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件. 结合 ...
- vue项目实现按需加载的3种方式:vue异步组件技术、es提案的import()、webpack提供的require.ensure()
1. vue异步组件技术 vue-router配置路由,使用vue的异步组件技术,可以实现按需加载. 但是,这种情况下一个组件生成一个js文件. 举例如下: { path: '/promisedemo ...
- vue项目实现按需加载的3种方式
vue异步组件技术 vue-router配置路由,使用vue的异步组件技术,可以实现按需加载.这种方式下一个组件生成一个js文件 用例: { path: '/promisedemo', name: ' ...
- vue项目上滑滚动加载更多&下拉刷新
上滑滚动时获取内容高度.屏幕高度和滚动高度(此处#sslist要为内容是id) 内容高度 let innerHeight = document.querySelector("#sslist ...
- 记一次cocos项目的加载速度优化
半个月前,我们用cosos creator做了一个简单的小游戏,也许算不上小游戏吧..一边学cocos,一边做,几经波折后终于上线了.然鹅,功能是实现了,但是加载速度十分感人(毕竟没经验嘛,无辜脸). ...
- vue-cli3项目首页加载速度优化(cdn加速,路由懒加载,gzip压缩)
今天打算上线vue的单页面项目,上线后,首页加载速度巨慢! 原因是项目上线后,网速不够快,加载js,css等资源很慢, 打开打包好的文件发现chunk-vendors.xxxxxxx.js的包很大,达 ...
- vue单页应用首次加载太慢之性能优化
问题描述: 最近开发了一个单页应用,上线后发现页面初始加载要20s才能完成,这就很影响用户体验了,于是分析原因,发现页面加载时有个 vendor.js达到了3000多kb,于是在网上查找了一下原因,是 ...
- 记录vue项目上线遇到的一些问题
1. 静态资源路径不对,在开发模式下正常,打包到服务器上的时候,发现静态资源全部请求不到 原因:开发模式下,本地静态服务器直接从项目目录直接起的,跟static是同目录,写绝对路径没问题,直接loca ...
- 基于Vue的SPA如何优化页面加载速度
常见的几种SPA优化方式 减小入口文件体积 静态资源本地缓存 开启GZip压缩 使用SSR ..... 减小入口文件体积,常用的手段是路由懒加载,开启路由懒加载之后,待请求的页面会单独打包js文件,使 ...
随机推荐
- 使用POI操作Excel时new XSSFWorkbook ()报错java.lang.NoSuchMethodError解决方式
使用最新的POI3.11时,在执行 Workbook workBook = new XSSFWorkbook ();这段代码时出现错误: java.lang.NoSuchMethodError: j ...
- soapUI系列之—-01 介绍soapUI简介,groovy 简介
1.soapui简介 SoapUI是一个自由和开放源码的跨平台功能测试解决方案.通过一个易于使用的图形界面和企业级功能,SoapUI让您轻松,快速创建和执行自动化功能.回归.合规和负载测试.在一个测试 ...
- Javascript将字符串日期格式化为yyyy-mm-dd的方法 js number 类型 没有length 属性 string类型才有
日期格式化相信对于大家来说再熟悉不过,最近工作中自己利用Javascript就写了一个,现在将实现的代码分享给大家,希望对有需要的朋友们能有所帮助,感兴趣的朋友们下面来一起看看吧. 这篇文章主要介绍的 ...
- 从PRISM开始学WPF(一)WPF?
从PRISM开始学WPF(一)WPF? 我最近打算学习WPF ,在寻找MVVM框架的时候发现了PRISM,在此之前还从一些博客上了解了其他的MVVM框架,比如浅谈WPF中的MVVM框架--MVVM ...
- ACdream原创群赛(13)のwuyiqi退役专场 C True love
True love Time Limit: 4000/2000 MS (Java/Others) Memory Limit:128000/64000 KB (Java/Others) Prob ...
- 在CentOS上把PHP从5.4升级到5.5
在CentOS上把PHP从5.4升级到5.5 摘要:本文记录了在CentOS 6.3上,把PHP从5.4.8升级到5.5.13的过程. 1. 概述 在我做的一个项目中,最近我对生产服务器上的一系列系统 ...
- 轻量级批量Omnitty工具安装和简单使用
一.Omnitty简单介绍 在实际工作需要同时对多台docker进行批量处理,为了节省时间,这个运维轻量级工具解决此问题 二.Omnitty简单按照 下载需要安装包和依赖包: omnitty-0.3. ...
- Java - split()函数和trim()函数的使用方法
split()函数和trim()函数的使用方法 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24465141 详细參考Java ...
- 密码过期导致Oracle process耗尽问题
oracle忽然连不上! 大致是报这样的错: ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程序 ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理 ...
- myeclipse提示:Syntax error on tokens, delete these tokens怎么解决
有中文字符或者符号,包括空格. 上次遇到一个问题,检查了一遍语法没错误, 后来发现是拷贝代码的时候有一部分中文空格没删除,就出现这个问题了. 一个个删除就OK了.