整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

威联通NAS插入新硬盘后的超详细扩容教程:如何新建或

威联通NAS插入新硬盘后的超详细扩容教程:如何新建或者扩充

内容来源于@什么值得买APP,观点仅代表作者本人 |作者:yasden



文章很长,有56张图片,建议收藏后慢慢看。

先讲一个题外话

每次看见值友的硬盘爆料,很多朋友首先问:“是不是叠瓦盘?”很多朋友都很鄙视叠瓦盘。我自己的使用心得是这样的:叠瓦盘当然没有企业盘好啦,14TB或者18TB的企业盘好不好?当然好啦!我更喜欢买4TB或者6TB的盘,理由是这样的:要是运气不好硬盘坏了,最多也是坏一个4TB或者一个6TB而已啦,要是坏14TB那就是14TB呀。都是亚马逊海淘的用户,反正保修都麻烦,不如就4TB、6TB这么买吧。14TB=4TB+6TB+4TB,一个顶3个了。我要三个硬盘一起坏(4TB+6TB+4TB),才相当于坏一个14TB。我就是这么想的。当然我下载BT有专用的N1下载机(N1盒子24小时下载电费便宜啊),我不会拿NAS来下载BT,因此我NAS用叠瓦盘好些年了,没有坏过,所以我的用法是这样的。个人还是喜欢叠瓦盘,图他便宜

纯粹 个人喜好,勿喷。

我家的威联通NAS有4个硬盘位,只有第1个硬盘位有一个2TB的红盘,剩下的3个硬盘位都是空的。应该有不少朋友和我一样,不是所有的硬盘位都插满硬盘吧?新买的硬盘,插到空的盘位之后,怎么设置呢?可以(1)扩充存储池,(2)新建一个存储池。教程来了。

我还是禁不住黑色星期五的低价,亚马逊买了一块6TB的蓝盘,而且是叠瓦盘(见下图),我只是想试试叠瓦盘到底能用多久?多久会用坏

黑5我还买了一块4TB的红盘,美国亚马逊海外购上面买的,就下图这样一个硬盘加减震塑料放纸盒子里给我寄来了,连西数的包装都没有,硬盘外面就一个一次性封口的塑料袋(见下图):

西数6TB或以下的红盘和蓝盘都是叠瓦盘,红盘要8TB以上才不是叠瓦盘,下图的所有硬盘都是叠瓦盘。

新硬盘插入威联通NAS之后的设置步骤来了:

第1步、将新硬盘插到NAS空的盘位上(无需断电可以热拔插),电脑登录威联通NAS


第2步、点击上图左上角的“控制台”按钮,进入下图的界面。

第3步、点击上图右上角的“存储与快照总管”,进入下图的界面

我原来有一块2TB的西数红盘,插在1盘位上,显示是1.82TB(见下图)。

现在我把6TB的西数蓝盘,插在3盘位上,系统识别出来这个6TB的蓝盘是5.46TB(见下图)。我现在要把这个6TB的西数蓝盘投入使用。为什么不插在2盘位上?因为我黑5还买了一个4TB的红盘,我打算把4TB红盘插到2盘位,所以这个6TB的蓝盘就插在第3盘位了。

点击上图的绿色数字3,进入查看3盘位硬盘的运行状况,从下图可以看出,状况很好,我刚买回来拆封,当然通电时间显示是0天0小时(见下图)。

第4步、点击左侧的“存储/快照”,进入下图的界面。


扩充存储池看第7步或第5步。新建一个存储池看第6步。

第5步、扩充存储池步骤。(第5步讲解并不详细,缺“调整卷大小"的设置方法。第7步是详细版本,请移步第7步查看)

在上图的界面,点击右上角的“管理”按钮,进入下图的界面


点击右上角的“扩充存储池”,在下拉菜单再点“扩充存储池”,进入下图的界面。


选择“创建并加入一个新的RAID组”,点击“下一步”,进入下图的界面。

在磁盘3前面打钩,点击下一步。

接下来点击“扩充”,按照提示完成后面的操作,可以看出,6TB的新硬盘合并到原来2TB旧硬盘的“存储池1”上,“存储池1”的空间也从2TB变成最终的7.26TB(见下图),电脑计算容量的方式和硬盘厂家有点差异,所以8TB电脑识别成7.26TB。

第5步这些完成后,还有最后一个步骤要做,就是新硬盘要进行“配置”,如何配置新硬盘,也就是如何“调整卷大小”,请看第7步讲解。

第6步、新建存储池步骤。

在下图界面点击右上角的“创建”按钮:

这时候,在下拉菜单上,选择“新存储池”。

这时候会弹出下面的窗口,什么都不选,就点击“下一步”继续。

这时候,会显示你插入的新硬盘(我刚刚在第3盘位插入了一个6TB的硬盘),在磁盘3前面打钩,RAID类型选单独(其他类型无法选择,除非你插入了2块以上的新硬盘),点击“下一步”。

这时候会弹出下图的界面:

不知道“启用保证快照空间”是什么意思的话,点击上图的“什么是保证快照空间?”,弹出下图的界面进行查看。

我不知道你们怎么设置的,我是按照下图这么设置的,警报临界值我设置成90%(后来我改成95%),就是硬盘使用超过90%容量时才警告空间不足,启用保证快照空间我设置成5%,之后点击“下一步”。当然你也可以不启用警报临界值,不启用保证快照空间,直接点击“下一步”。

之后出现下图的界面,点击“创建”。

大家看上图,保留空间有12.19%,也就是说有401GB要浪费掉。大家看看,保留空间是用来干什么的(见下图)。

点击“创建”按钮,出现下图的提示。提示你,你刚才插入的那个6TB硬盘里面的数据会被删除掉(我是刚买的新硬盘,无任何数据的,如果你插入的硬盘有数据,务必先备份,不然格式化就没了),点击“确定”。

之后出现下图的界面。

等几分钟后,出现下图的界面。

在上图的界面点击“新卷”,进入下图的界面。

在上图的界面,点击“下一步”。在下图的界面,卷容量选择“最大”:

往下拉,“警报临界值”不打钩,其他的也不打钩,点击“下一步”。

之后出现下图的界面,点击“完成”。

之后出现下图的提示:

在上图的界面,你可以点击“关闭”按钮,在下图的“存储池2,初始化中。。。”的地方查看硬盘初始化的进度。

初始化完成后,还要进行硬盘优化,看下图:

“初始化”加上“优化”,大概花了20分钟时间,初始化大概用了5分钟,优化花了15分钟左右。当出现下图的界面,代表全部完成了。

第7步、扩充存储池步骤(这个步骤和第5步相同,但是有一个细节第5步没有讲清楚,在第7步这里讲清楚)

第7步是后面增加的,本来这篇文章写到第6步已经完成了,等我写完第6步,发现我黑5买的西数4TB红盘也到了,因此,我将4TB红盘插到盘位2上,扩充存储池的步骤也演示给大家看(这一步的最后有一个细节,需要大家留意)。

首先当然是把4TB红盘插到NAS的第2盘位上啦,威联通的这款NAS支持热拔插,不需要关NAS电源,直接带电插入即可。插入之后,发现第2盘位也变绿色了:

点击左侧的“存储”-“存储/快照”。

在上图的界面,点击“DataVol1(系统)”,再点击界面右上角的“管理”,进入下图的界面。先来看看这个NAS原来的“存储池1”,原来我是在盘位1上插入了一个2TB的红盘,系统显示1.7TB的容量(电脑识别的容量和硬盘厂家标注的容量略有差别):

点击“存储”-“存储/快照”-“存储池1”-“管理”,进入下图的界面。

在上图的界面,点击“扩充存储池”,之后会出现一个下拉菜单(见下图),在下拉菜单上点击“扩充存储池”。

之后会出现下图的界面,在这个界面只能选择“创建并加入一个新的RAID组”,点击“下一步”。

之后出现下图的界面,在这个界面勾选“磁盘2”,也就是你刚刚插入的4TB红盘,点击“下一步”。

之后会出现下图的界面,点击“扩充”。

然后会弹出一个对话框,警告你插入的这个4TB硬盘里面的数据会被格式化,如果你的硬盘有数据,务必先备份。点击“确定”继续。

之后会弹出下图的界面。

过30秒左右,出现下图的界面,点击“确定”。

之后,你会发现,存储池1已经扩容变成5.44TB了(原来的2TB红盘+新买的4TB红盘),但是已配置1.85TB,还有3.59TB的空间处于未配置的状况(见下图红色方框圈出的地方)。

调整卷大小

点击“DataVol1(系统)”,再点击界面右上角的“管理”,进入下图的界面。在下图的界面,点击“调整卷大小”:

之后出现下图的界面。在这个界面点击“最大”-“应用”。

它会提示,保留一些可用空间(见下图的提示)。

那就保留一些空间好了,最大是5447.23GB,“新容量”我就填“5400.23”GB好了,之后点击“应用”。

然后会弹出下图的界面,点击“关闭”。

你可以在下图这个界面查看进度,就是在那个“正在扩充。。。68%”的地方查看扩充进度。

大概5分钟之后,就扩充完成了,之后可以在下图的界面查看扩充之后的情况。扩充之后,存储池1有5.39TB的已配置空间了,剩下47GB的“未配置空间”,你可以按照我上面的方法来继续配置。

总结

买来一块新硬盘,插到威联通NAS空的硬盘位上,可以有两个选择:(1)在原来旧的存储池上扩充容量,或(2)新建一个存储池。

两种方式各有优缺点。第一种方法会节省不少硬盘空间,因为第二种方法新建一个存储池会浪费掉一些新硬盘的空间。第二种方法的优点是:如果是准备后续要换成大容量硬盘的话,比如我这个3盘位的6T的空间用完了,只需要单独拷贝存储池2的6TB数据出来,删掉存储池2,换上新的硬盘,重新建立存储池2即可。如果是第1种方法:准备后续换成大容量硬盘的话,比如想把其中一块6TB的换成18TB的,用第1种方式扩充存储池的情况下是做不到的,因为存储池1有系统盘,存储池1的硬盘无法拆出来单独换,你要将存储池1的硬盘都备份好之后,才能拆卸下来进行更换。

扩充存储池后,新硬盘的容量处于一个“未配置”的状况,要“配置”一下,也就是要“调整卷大小”之后,才能使用。

全文完,谢谢观看。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

接:https://juejin.im/book/5b936540f265da0a9624b04b

《高性能网站建设指南》的作者 Steve Souders 曾在一篇博客中提到:

我的大部分性能优化工作都集中在 JavaScript 和 CSS 上,从早期的 Move Scripts to the Bottom 和 Put Stylesheets at the Top 规则。为了强调这些规则的重要性,我甚至说过,“JS 和 CSS 是页面上最重要的部分”。

几个月后,我意识到这是错误的。图片才是页面上最重要的部分。

我关注 JS 和 CSS 的重点也是如何能够更快地下载图片。图片是用户可以直观看到的。他们并不会关注 JS 和 CSS。确实,JS 和 CSS 会影响图片内容的展示,尤其是会影响图片的展示方式(比如图片轮播,CSS 背景图和媒体查询)。但是我认为 JS 和 CSS 只是展示图片的方式。在页面加载的过程中,应当先让图片和文字先展示,而不是试图保证 JS 和 CSS 更快下载完成。

这段话可谓字字珠玑。此外,雅虎军规和 Google 官方的最佳实践也都将图片优化列为前端性能优化必不可少的环节——图片优化的优先级可见一斑。

就图片这块来说,与其说我们是在做“优化”,不如说我们是在做“权衡”。因为我们要做的事情,就是去压缩图片的体积(或者一开始就选取体积较小的图片格式)。但这个优化操作,是以牺牲一部分成像质量为代价的。因此我们的主要任务,是尽可能地去寻求一个质量与性能之间的平衡点。

2019 年,图片依然很大

这里先给大家介绍 HTTP-Archive 这个网站,它会定期抓取 Web 上的站点,并记录资源的加载情况、Web API 的使用情况等页面的详细信息,并会对这些数据进行处理和分析以确定趋势。通过它我们可以实时地看到世界范围内的 Web 资源的统计结果。

截止到 2018 年 8 月,过去一年总的 web 资源的平均请求体积是这样的:

而具体到图片这一类的资源,平均请求体积是这样的:

当然,随着我们工程师在性能方面所做的努力越来越有成效,平均来说,不管是资源总量还是图片体积,都在往越来越轻量的方向演化。这是一种值得肯定的进步。

但同时我们不得不承认,如图所示的这个图片体积,依然是太大了。图片在所有资源中所占的比重,也足够“触目惊心”了。为了改变这个现状,我们必须把图片优化提上日程。

不同业务场景下的图片方案选型

时下应用较为广泛的 Web 图片格式有 JPEG/JPG、PNG、WebP、Base64、SVG 等,这些格式都是很有故事的,值得我们好好研究一把。此外,老生常谈的雪碧图(CSS Sprites)至今也仍在一线的前端应用中发光发热,我们也会有所提及。

不谈业务场景的选型都是耍流氓。下面我们就结合具体的业务场景,一起来解开图片选型的神秘面纱!

前置知识:二进制位数与色彩的关系

在计算机中,像素用二进制数来表示。不同的图片格式中像素与二进制位数之间的对应关系是不同的。一个像素对应的二进制位数越多,它可以表示的颜色种类就越多,成像效果也就越细腻,文件体积相应也会越大。

一个二进制位表示两种颜色(0|1 对应黑|白),如果一种图片格式对应的二进制位数有 n 个,那么它就可以呈现 2^n 种颜色。

JPEG/JPG

关键字:有损压缩、体积小、加载快、不支持透明

JPG 的优点

JPG 最大的特点是有损压缩。这种高效的压缩算法使它成为了一种非常轻巧的图片格式。另一方面,即使被称为“有损”压缩,JPG的压缩方式仍然是一种高质量的压缩方式:当我们把图片体积压缩至原有体积的 50% 以下时,JPG 仍然可以保持住 60% 的品质。此外,JPG 格式以 24 位存储单个图,可以呈现多达 1600 万种颜色,足以应对大多数场景下对色彩的要求,这一点决定了它压缩前后的质量损耗并不容易被我们人类的肉眼所察觉——前提是你用对了业务场景。

使用场景

JPG 适用于呈现色彩丰富的图片,在我们日常开发中,JPG 图片经常作为大的背景图、轮播图或 Banner 图出现。

两大电商网站对大图的处理,是 JPG 图片应用场景的最佳写照:

打开淘宝首页,我们可以发现页面中最醒目、最庞大的图片,一定是以 .jpg 为后缀的:

京东首页也不例外:

使用 JPG 呈现大图,既可以保住图片的质量,又不会带来令人头疼的图片体积,是当下比较推崇的一种方案。

JPG 的缺陷

有损压缩在上文所展示的轮播图上确实很难露出马脚,但当它处理矢量图形Logo 等线条感较强、颜色对比强烈的图像时,人为压缩导致的图片模糊会相当明显。

此外,JPEG 图像不支持透明度处理,透明图片需要召唤 PNG 来呈现。

PNG-8 与 PNG-24

关键字:无损压缩、质量高、体积大、支持透明

PNG 的优点

PNG(可移植网络图形格式)是一种无损压缩的高保真的图片格式。8 和 24,这里都是二进制数的位数。按照我们前置知识里提到的对应关系,8 位的 PNG 最多支持 256 种颜色,而 24 位的可以呈现约 1600 万种颜色。

PNG 图片具有比 JPG 更强的色彩表现力,对线条的处理更加细腻,对透明度有良好的支持。它弥补了上文我们提到的 JPG 的局限性,唯一的 BUG 就是体积太大

PNG-8 与 PNG-24 的选择题

什么时候用 PNG-8,什么时候用 PNG-24,这是一个问题。

理论上来说,当你追求最佳的显示效果、并且不在意文件体积大小时,是推荐使用 PNG-24 的。

但实践当中,为了规避体积的问题,我们一般不用PNG去处理较复杂的图像。当我们遇到适合 PNG 的场景时,也会优先选择更为小巧的 PNG-8

如何确定一张图片是该用 PNG-8 还是 PNG-24 去呈现呢?好的做法是把图片先按照这两种格式分别输出,看 PNG-8 输出的结果是否会带来肉眼可见的质量损耗,并且确认这种损耗是否在我们(尤其是你的 UI 设计师)可接受的范围内,基于对比的结果去做判断。

应用场景

前面我们提到,复杂的、色彩层次丰富的图片,用 PNG 来处理的话,成本会比较高,我们一般会交给 JPG 去存储。

考虑到 PNG 在处理线条和颜色对比度方面的优势,我们主要用它来呈现小的 Logo、颜色简单且对比强烈的图片或背景等。

此时我们再次把目光转向性能方面堪称业界楷模的淘宝首页,我们会发现它页面上的 Logo,无论大小,还真的都是 PNG 格式:

主 Logo:

较小的 Logo:

颜色简单、对比度较强的透明小图也在 PNG 格式下有着良好的表现:

SVG

关键字:文本文件、体积小、不失真、兼容性好

SVG(可缩放矢量图形)是一种基于 XML 语法的图像格式。它和本文提及的其它图片种类有着本质的不同:SVG 对图像的处理不是基于像素点,而是是基于对图像的形状描述。

SVG 的特性

和性能关系最密切的一点就是:SVG 与 PNG 和 JPG 相比,文件体积更小,可压缩性更强

当然,作为矢量图,它最显著的优势还是在于图片可无限放大而不失真这一点上。这使得 SVG 即使是被放到视网膜屏幕上,也可以一如既往地展现出较好的成像品质——1 张 SVG 足以适配 n 种分辨率。

此外,SVG 是文本文件。我们既可以像写代码一样定义 SVG,把它写在 HTML 里、成为 DOM 的一部分,也可以把对图形的描述写入以 .svg 为后缀的独立文件(SVG 文件在使用上与普通图片文件无异)。这使得 SVG 文件可以被非常多的工具读取和修改,具有较强的灵活性

SVG 的局限性主要有两个方面,一方面是它的渲染成本比较高,这点对性能来说是很不利的。另一方面,SVG 存在着其它图片格式所没有的学习成本(它是可编程的)。

SVG 的使用方式与应用场景

SVG 是文本文件,我们既可以像写代码一样定义 SVG,把它写在 HTML 里、成为 DOM 的一部分,也可以把对图形的描述写入以 .svg 为后缀的独立文件(SVG 文件在使用上与普通图片文件无异)。

将 SVG 写入 HTML:

将 SVG 写入独立文件后引入 HTML:

<img src="文件名.svg" alt="">

在实际开发中,我们更多用到的是后者。很多情况下设计师会给到我们 SVG 文件,就算没有设计师,我们还有非常好用的 在线矢量图形库。对于矢量图,我们无须深究过多,只需要对其核心特性有所掌握、日后在应用时做到有迹可循即可。

Base64

关键字:文本文件、依赖编码、小图标解决方案

Base64 并非一种图片格式,而是一种编码方式。Base64 和雪碧图一样,是作为小图标解决方案而存在的。在了解 Base64 之前,我们先来了解一下雪碧图。

前置知识:最经典的小图标解决方案——雪碧图(CSS Sprites)

雪碧图、CSS 精灵、CSS Sprites、图像精灵,说的都是这个东西——一种将小图标和背景图像合并到一张图片上,然后利用 CSS 的背景定位来显示其中的每一部分的技术。

MDN 对雪碧图的解释已经非常到位:

图像精灵(sprite,意为精灵),被运用于众多使用大量小图标的网页应用之上。它可取图像的一部分来使用,使得使用一个图像文件替代多个小文件成为可能。相较于一个小图标一个图像文件,单独一张图片所需的 HTTP 请求更少,对内存和带宽更加友好。

我们几乎可以在每一个有小图标出现的网站里找到雪碧图的影子(下图截取自京东首页):

和雪碧图一样,Base64 图片的出现,也是为了减少加载网页图片时对服务器的请求次数,从而提升网页性能。Base64 是作为雪碧图的补充而存在的。

理解 Base64

通过我们上文的演示,大家不难看出,每次加载图片,都是需要单独向服务器请求这个图片对应的资源的——这也就意味着一次 HTTP 请求的开销。

Base64 是一种用于传输 8Bit 字节码的编码方式,通过对图片进行 Base64 编码,我们可以直接将编码结果写入 HTML 或者写入 CSS,从而减少 HTTP 请求的次数。

我们来一起看一个实例,现在我有这么一个小小的放大镜 Logo:

它对应的链接如下:

https://user-gold-cdn.xitu.io/2018/9/15/165db7e94699824b?w=22&h=22&f=png&s=3680

按照一贯的思路,我们加载图片需要把图片链接写入 img 标签:

<img src="https://user-gold-cdn.xitu.io/2018/9/15/165db7e94699824b?w=22&h=22&f=png&s=3680">

浏览器就会针对我们的图片链接去发起一个资源请求。

但是如果我们对这个图片进行 Base64 编码,我们会得到一个很长很长的字符串,我们可以直接用这个字符串替换掉上文中的链接地址。你会发现浏览器原来是可以理解这个字符串的,它自动就将这个字符串解码为了一个图片,而不需再去发送 HTTP 请求。

Base64 的应用场景

上面这个实例,其实源自我们 掘金 网站 Header 部分的搜索栏 Logo:

既然 Base64 这么棒,我们何不把大图也换成 Base64 呢?

这是因为,Base64 编码后,图片大小会膨胀为原文件的 4/3(这是由 Base64 的编码原理决定的)。如果我们把大图也编码到 HTML 或 CSS 文件中,后者的体积会明显增加,即便我们减少了 HTTP 请求,也无法弥补这庞大的体积带来的性能开销,得不偿失。

在传输非常小的图片的时候,Base64 带来的文件体积膨胀、以及浏览器解析 Base64 的时间开销,与它节省掉的 HTTP 请求开销相比,可以忽略不计,这时候才能真正体现出它在性能方面的优势。

因此,Base64 并非万全之策,我们往往在一张图片满足以下条件时会对它应用 Base64 编码:

  1. 图片的实际尺寸很小(大家可以观察一下掘金页面的 Base64 图,几乎没有超过 2kb 的)
  2. 图片无法以雪碧图的形式与其它小图结合(合成雪碧图仍是主要的减少 HTTP 请求的途径,Base64 是雪碧图的补充)
  3. 图片的更新频率非常低(不需我们重复编码和修改文件内容,维护成本较低)

Base64 编码工具推荐

这里最推荐的是利用 webpack 来进行 Base64 的编码——webpack 的 url-loader 非常聪明,它除了具备基本的 Base64 转码能力,还可以结合文件大小,帮我们判断图片是否有必要进行 Base64 编码。

除此之外,市面上免费的 Base64 编解码工具种类是非常多样化的,有很多网站都提供在线编解码的服务,大家选取自己认为顺手的工具就好。

WebP

关键字:年轻的全能型选手

WebP 是今天在座各类图片格式中最年轻的一位,它于 2010 年被提出, 是 Google 专为 Web 开发的一种旨在加快图片加载速度的图片格式,它支持有损压缩和无损压缩。

WebP 的优点

WebP 像 JPEG 一样对细节丰富的图片信手拈来,像 PNG 一样支持透明,像 GIF 一样可以显示动态图片——它集多种图片文件格式的优点于一身。

WebP 的官方介绍对这一点有着更权威的阐述:

与 PNG 相比,WebP 无损图像的尺寸缩小了 26%。在等效的 SSIM 质量指数下,WebP 有损图像比同类 JPEG 图像小 25-34%。 无损 WebP 支持透明度(也称为 alpha 通道),仅需 22% 的额外字节。对于有损 RGB 压缩可接受的情况,有损 WebP 也支持透明度,与 PNG 相比,通常提供 3 倍的文件大小。

我们开篇提到,图片优化是质量与性能的博弈,从这个角度看,WebP 无疑是真正的赢家。

WebP 的局限性

WebP 纵有千般好,但它毕竟太年轻。我们知道,任何新生事物,都逃不开兼容性的大坑。现在是 2018 年 9 月,WebP 的支持情况是这样的:

坦白地说,虽然没有特别惨(毕竟还有亲爹 Chrome 在撑腰),但也足够让人望而却步了。

此外,WebP 还会增加服务器的负担——和编码 JPG 文件相比,编码同样质量的 WebP 文件会占用更多的计算资源。

WebP 的应用场景

现在限制我们使用 WebP 的最大问题不是“这个图片是否适合用 WebP 呈现”的问题,而是“浏览器是否允许 WebP”的问题,即我们上文谈到的兼容性问题。具体来说,一旦我们选择了 WebP,就要考虑在 Safari 等浏览器下它无法显示的问题,也就是说我们需要准备 PlanB,准备降级方案。

目前真正把 WebP 格式落地到网页中的网站并不是很多,这其中淘宝首页对 WebP 兼容性问题的处理方式就非常有趣。我们可以打开 Chrome 的开发者工具搜索其源码里的 WebP 关键字:

我们会发现检索结果还是挺多的(单就图示的加载结果来看,足足有?200?多条),下面大家注意一下这些 WebP 图片的链接地址(以其中一个为例):

<img src="//img.alicdn.com/tps/i4/TB1CKSgIpXXXXccXXXX07tlTXXX-200-200.png_60x60.jpg_.webp" alt="手机app - 聚划算" class="app-icon">

.webp 前面,还跟了一个 .jpg 后缀!

我们现在先大胆地猜测,这个图片应该至少存在 jpg 和 webp 两种格式,程序会根据浏览器的型号、以及该型号是否支持 WebP 这些信息来决定当前浏览器显示的是 .webp 后缀还是 .jpg 后缀。带着这个预判,我们打开并不支持 WebP 格式的 Safari 来进入同样的页面,再次搜索 WebP 关键字:

Safari 提示我们找不到,这也是情理之中。我们定位到刚刚示例的 WebP 图片所在的元素,查看一下它在 Safari 里的图片链接:

<img src="//img.alicdn.com/tps/i4/TB1CKSgIpXXXXccXXXX07tlTXXX-200-200.png_60x60.jpg" alt="手机app - 聚划算" class="app-icon">

我们看到同样的一张图片,在 Safari 中的后缀从 .webp 变成了 .jpg!看来果然如此——站点确实是先进行了兼容性的预判,在浏览器环境支持 WebP 的情况下,优先使用 WebP 格式,否则就把图片降级为 JPG 格式(本质是对图片的链接地址作简单的字符串切割)。

此外,还有另一个维护性更强、更加灵活的方案——把判断工作交给后端,由服务器根据 HTTP 请求头部的 Accept 字段来决定返回什么格式的图片。当 Accept 字段包含 image/webp 时,就返回 WebP 格式的图片,否则返回原图。这种做法的好处是,当浏览器对 WebP 格式图片的兼容支持发生改变时,我们也不用再去更新自己的兼容判定代码,只需要服务端像往常一样对 Accept 字段进行检查即可。

由此也可以看出,我们 WebP 格式的局限性确实比较明显,如果决定使用 WebP,兼容性处理是必不可少的。

者复盘最近的电商拆单工作经历,从原因、流程等方面进行分析,也让大家不再踩坑。

什么情况下需要拆单?

商家不同

像TB、PD一样的平台有多种店家,因发货地不同则需要拆单。

根据商家拆单比较容易理解,比如你在电商平台上买了二个商品,一个是玩具,一个是图书。图书和衣服基本都是平台的东西,所以你买的这两个东西很可能是两个不同商家的。

当你购物车里面同时买了图书和衣服的时候,尽管是你一次付款的,但由于背后是两个不同的商家,所以会把你的这笔订单拆成2个不同的子订单,每个子订单由相应的商家发货。因为不同商家的货都是存在自己商家的仓库里面,所以不可能同时从2个不同的商家发货,这也就是为什么购物车里面要根据不同的商家进行拆单。

品类限制

自营平台本身有多家仓库,用户购买后会从不同的仓库发货。这种情况就是,自营平台内的商品会有品类的限制,每一个品类都会有特殊的属性,比如有效期、超大物品、易碎品之类的需要单独包装,这样就不能放在一起,所以需要设计拆单规则。

为什么拆单?

1)为了优化用户体验

用户在下单之后能看到清晰的订单和物流信息。

2)为了平台管理方便

在前期大多数平台的订单系统和支付系统都是分开设计的,像订单系统有多个子订单:订单A,订单B,订单C,当这个订单支付完了之后会合并在一起,传入支付系统,那后者看到的只有一个单号,

3)为了后台的操作灵活度

所谓拆单,一般的是指拆订单。注意,这里的【拆】不是拆支付流水,为什么?

很简单,一个订单可以对应多个商品;这样的话,就需要把其中某个商品或者某几个商品进行分组,形成子订单,形成了一次付款对应多个订单的情况。

那你就问了,什么场景下才会有拆单?个人有限的经验告诉我,无非出于两点:

  1. 便于结算,一个订单包含多个商家的商品,为了结算方便;
  2. 便于发货,一个订单包含多个仓库的商品,为了发货方便。

拆单基本流程

从图中可以看出,用户在付款后需要平台去判断该订单是否需要拆单,怎么拆,这块要根据自己平台的业务去制定详细的规则。

需要注意的是,如果用户已经生成了订单但没有付款,这时该订单会在待付款展示。注意:这时候的订单是不拆的,只有在用户付完款之后才会去判断拆单流程。

怎么拆

之前的退款逻辑是对一个订单内的商品进行依次退款,所可能发生的情况。现在如果进行拆单,就涉及前端显示问题,我们是根据供应商的不同所进行的拆单。前端页面上会显示每一个供应商下的商品订单,也可以看到根据规则拆出来的商品价格。

这里给大家几个问题思考:

根据自身公司的业务需要怎么拆单?

我的订单内如果有的商品发货,有的商品没有发货前端怎么展示?

待发货,待收货,待评价又怎么展示?怎么根据供应商或者商家进行退款?

拆单后的订单也是可以查看详情的,是给用户展示商品原价,还是展示订单拆完每一笔的钱这。这里会涉及两个问题:展示原价时,用户可能会被搞蒙,不知道自己每笔订单分别付了多少钱,但底部会显示实付金额;显示拆单的价格时,用户退款是否可以退显示的商品价钱,这会涉及第一个问题,怎么拆?

订单号,查看物流,确认收货,申请退款所对应商品信息以及层级关系,

这里会涉及后台部分,我们最开始拆单没有拆订单号,而是在一个订单里进行收货,查看物流和确认收货的操作,之后因为一些原因就换掉了。这里需要考虑每一个状态所对应的是后台的哪部分。

写在最后

这一块很复杂,我在之前的文章中总结过一篇电商的退款逻辑,之后的内容可能会跟上一篇文章有关联。如果大家看完有任何异议的地方可以查看我的上一篇文章,会有些启发,最后,希望大家能认真看也欢迎大家补充。

写了这么多,把好多踩过的坑和涉及到的都写在文章里了。

电商拆单这一块,涉及的地方很多,大多数情况都需要推倒本身的业务重做。所以,在设计这一部分的时候也要额外注意,否则就要被开发爸爸们群攻了。

最后,希望正在设计这一块的产品看到这篇文章后能有所启发。

#相关阅读#

做电商,必须知道这些退款逻辑

作者:胡子邯;公众号:产品经理的日常思考。

本文由 @胡子邯 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自Unsplash,基于CC0协议