js实现上传前图片压缩功能

项目需求,需要压缩图片,网上看到一篇类似需求,压缩效果很不错, 直接上代码 // 更小的压缩图片 lessCompress(img, Orientation) { let canvas = document.createElement("canvas"); let ctx = canvas.getContext("2d"); //瓦片canvas let tCanvas = document.createElement("canvas"); let tctx = tCanvas.getContext("2d"); let initSize = img.src.length; let width = img.width; let height = img.height; //如果图片大于四百万像素,计算压缩比并将大小压至400万以下 let ratio; if...

数组嵌套多维对象转换一维数组

前言工作时处理一段数组对象,树形结构,需要转换成一层结构如下图,一层套一层,不方便使用,解决方案使用了递归来改变数据结构,直接贴代码 function parseArr(arr, res) {         var i = 0;         for (i = 0; i < arr.length; i++) {             if (arr[i].commentList && arr[i].commentList.length > 0) {                 parseArr(arr[i].commentList, res);                 var t = JSON.parse(JSON.stringify(arr[i]))                 delete t.commentList                 res.push(t)             } else {                 res.push(arr[i]);             }         }...

解决ios 拿不到localstorage的问题

在写一个电商项目中遇到iphone无法正常获取localStorage,经了解后,自从把iOS中的WebView换成WKWebView后,首次加载h5页面,h5页面中的js就拿不到localstorage了。页面加载完成后取token$(document).ready(function(){ token = localStorage.getItem("token"); })使用token访问服务器接口$.ajax({ headers: { Authorization: "Token " + token }, type:"get", dataType:"json", data:{timestamp:Date.parse(new Date())}, url:server_host, succe...

封装cookie方法

在项目中遇到使用无痕模式后无法获取到localStorage存储的值,因此改用cookie/* 设置cookie name: cookie名称 String value: cookie值 String day: 过期时间几天 Number */ export const setCookie = (name, value, day) => { if (day !== 0) { //当设置的时间等于0时,不设置expires属性,cookie在浏览器关闭后删除 var expires = day * 24 * 60 * 60 * 1000; var date = new Date(+new Date() + expires); document.cookie = name + "=" + escape(value) + ";expires=" + date.toUTCString(); } else { documen...

修改Git某一次Commit信息

查询历史记录git log 指定修改记录git rebase -i 某一条的SHA如果要修改第一条的记录git rebase -i --root使用vim语法 将需要更改的某一条信息的 pick 修改成edit:wq 保存并退出提交更改git commit --amend将上次提交的信息修改成需要更改后的内容 使用vim语法修改:wq 保存退出推送远程git push origin 远程分支 -f推送成功即可