记录学习成长之路。逆水行舟,不进则退
移动端有些机型在上传图片的时候会有图片旋转的情况,但是在浏览器看图又是正常的, 在img标签上看又是旋转的,由于设备拍摄的角度的不同,会导致图片到应用程序的时候图片会自动旋转, 但是为什么在浏览器直接访问链接又是正常的?是因为浏览器自动帮你做了校正,其中可以用Orientation属性来获取 图片的方位
Orientation对应的属性如下
- Orientation = 1(不翻转)
- Orientation = 2 (左右翻转)
- Orientation = 3 (180度翻转)
- Orientation = 4 (上下翻转)
- Orientation = 5 (顺时针翻转90度后,左右翻转)
- Orientation = 6 (顺时针翻转90度)
- Orientation = 7 (逆时针翻转90度后,左右翻转)
- Orientation = 8 (逆时针翻转90度)
可以用exif-js获取图片的详细信息,也可以获取到Orientation属性,判断Orientation是多少然后纠正图片的角度就可以达到预期的效果了
FIFO先进先出
LRU最近最少使用算法
LFU最不经常使用算法
如果直接通过列表生成生成一个列表,如果列表很大,但是又不知道哪些是自己需要的,如果列表很大,我们只需要访问前面几个,就会浪费存储空间,所以可以通过 所以列表元素可以通过上个元素推导出来,就可以使用generator,这样就不用创建完整的list,就节省了大量的空间,达到我们想要的效果比如斐波拉契数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到,这样也能通过generator函数实现
因为node是单进程应用,不能利用多核CPU,虽然异步IO大大提高了node的并发量,减少线程上下文切换带来的性能开销,但是 对于计算密集型不擅长,并且错误会引起整个应用退出,大计算量会占用CPU导致无法继续调用异步IO 已完成的回调函数也会得不到及时调用,所以利用了children_process模块实现了node的单机集群,将计算分发到各个子进程 将计算分解,通过master-worker的方式提高应用的健壮性。node提供了cluster帮助我们更好的构建单机集群 这里只是针对单机集群实现的细节做了下整理,帮助理解cluster模块的原理
在FormData文件夹里
const formData = new Form();
formData.append('xf', '肖锋');
formData.append('dage', new Blob(['神鼎飞丹砂的'], {
type: 'text/plain'
}));
formData.append('obj', new Blob([JSON.stringify({xf: '肖锋'})], {
type: 'application/json'
}));
formData.toString().then(res => {
fetch('https://www.mocky.io/v2/5cc8019d300000980a055e76', {
method: 'POST',
body: res.data,
headers: {
'Content-Type': "multipart/form-data; boundary=" + res.boundary
}
}).then(res => {
console.log(res)
})
})