iOS移动端操作过程中自动刷新
ios自带的刷新机制,内存过量自动刷新。
可能是存在上传图片、文件等的缓存过大。
压缩图片:
//压缩的转为file
dataURLtoFile(dataurl) {
var arr = dataurl.split(','),
mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]),
n = bstr.length,
u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], { type: mime });
},
//压缩图片
compressImg(file){
var _this = this;
var src;
var files;
var fileSize = parseFloat(parseInt(file['size'])/1024/1024).toFixed(2);
var read = new FileReader();
read.readAsDataURL(file);
return new Promise(function(resolve, reject){
read.onload = function (e) {
var img = new Image();
img.src = e.target.result;
img.onload = function(){
//默认按比例压缩
var w = this.width,
h = this.height;
//生成canvas
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var base64;
// 创建属性节点
canvas.setAttribute("width", w);
canvas.setAttribute("height", h);
ctx.drawImage(this, 0, 0, w, h);
if(fileSize<1){
//如果图片小于一兆 那么不执行压缩操作
base64 = canvas.toDataURL(file['type'], 1);
}else if(fileSize>1&&fileSize<2){
//如果图片大于1M并且小于2M 那么压缩0.5
base64 = canvas.toDataURL(file['type'], 0.5);
}else{
//如果图片超过2m 那么压缩0.2
base64 = canvas.toDataURL(file['type'], 0.2);
}
// 回调函数返回file的值(将base64编码转成file)
files = _this.dataURLtoFile(base64); //如果后台接收类型为base64的话这一步可以省略
resolve(files)
};
};
})
},
//使用压缩=========================
//获取图片
let file = xxx
//压缩
let file1 =await this.compressImg(file)
可回溯状态上传视频部分没有样式
先排查自己的问题,真查不到可能就是可回溯后台,没有配置好静态文件