分类 代码如诗 下的文章

起因还是由于封装的函数库里面有一个精度计算的问题,代码如下:

const addExact(arg1, arg2) => {
    let r1, r2, m;
    try {
        r1 = arg1.toString().split('.')[1].length;
    } catch (e) {
        r1 = 0;
    }
    try {
        r2 = arg2.toString().split(".")[1].length;
    } catch (e) {
        r2 = 0;
    }
    m = Math.pow(10, Math.max(r1, r2));
    return Math.round(arg1 * m + arg2 * m) / m;
};

- 阅读剩余部分 -

在有些情况下,我们可能需要对一个 prop 进行“双向绑定”。不幸的是,真正的双向绑定会带来维护上的问题,因为子组件可以变更父组件,且在父组件和子组件都没有明显的变更来源。

今天扒拉官方文档,发现.sync这块还是理解的不是太好,于是写一个demo,做一下记录。

- 阅读剩余部分 -

没有一种架构是可以满足所有迭代的需求的

架构并不是只限于技术选型,架构作为软件生命周期的一部分!软件的生命周期包含了迭代、维护、重构等过程,架构设计亦是如此,所以说架构是需要变化的,目的就是适应当前情况的开发场景。

而架构产生的时间,必定是受到当时的约束条件,如人力、团队技术积累、时间、业务定位等等需求。所以,当前架构可能并不能满足未来的需求,我们要开放对待这个问题,只要当前的架构符合一定的设计原则,未来进行架构的演进就不是问题。

“架构”这个词解释也没有一个明确的定义,每个层级,每个场景都有自己的解释,所以到底什么是架构呢?

- 阅读剩余部分 -

周末随手看Vue的api文档,看到了vm.$attrs这个,官方是这么解释的:

包含了父作用域中不作为 prop 被识别 (且获取) 的 attribute 绑定 (classstyle 除外)。当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定 (classstyle 除外),并且可以通过 v-bind="$attrs" 传入内部组件——在创建高级别的组件时非常有用。

看完之后发现,这些解释比较晦涩,官方也没有具体的例子来解释!还是自己动手整个demo来看看吧!!!

- 阅读剩余部分 -

之前用cli脚手架搭完之后,直接把vue.config.js丢项目根目录就完事了,前几天用脚手架重新搭了个项目,安装完各种依赖之后,运行竟然莫名其妙的报错了:

ValidationError: Invalid options object. Sass Loader has been initialised using an options object that does not match the API schema.

- 阅读剩余部分 -

Windows Terminal 是一个全新的、流行的、功能强大的命令行终端工具。包含很多来社区呼声很高的特性,例如:多 Tab 支持、富文本、多语言支持、可配置、主题和样式,支持 emoji 和基于 GPU 运算的文本渲染等等。同时该终端依然符合我们的目标和要求,以确保它保持快速、高效,并且不会消耗大量内存和电源。

- 阅读剩余部分 -

什么是HLS,RTSP,RTMP

HLS 协议:基于HTTP协议的流直播(wikipedia)。苹果推出的解决方案,将视频分成 5-10 秒的视频小分片,然后用 m3u8 索引表进行管理。由于客户端下载到的视频都是 5-10 秒的完整数据,故视频的流畅性很好,但也同样引入了很大的延迟(HLS 的一般延迟在 10-30s 左右)。相比于 FLV, HLS 在iPhone 和大部分 Android 手机浏览器上的支持非常给力,所以常用于 QQ 和微信朋友圈的 URL 分享。

RTSP(Real-Time Stream Protocol)由Real Networks 和Netscape共同提出的,基于文本的多媒体播放控制协议. RTSP定义流格式,流数据经由RTP传输;RTSP实时效果非常好,适合视频聊天,视频监控等方向。

RTMP 实时消息传输协议,由Adobe公司研发,但当前还没有收入国际标准(wikipedia)。协议比较全能,既可以用来推送又可以用来直播,其核心理念是将大块的视频帧和音频帧“剁碎”,然后以小数据包的形式在互联网上进行传输,且支持加密,因此隐私性相对比较理想,但拆包组包的过程比较复杂,所以在海量并发时容易出现一些不可预期的稳定性问题。

- 阅读剩余部分 -

清明时节雨纷纷,路上行人欲断魂!

今天是个特殊的日子,为了表达全国各族人民对抗击新冠肺炎疫情斗争牺牲烈士和逝世同胞的深切哀悼,国务院决定,2020年4月4日举行全国性哀悼活动,10时起,全国人民默哀3分钟,汽车、火车、舰船鸣笛,防空警报鸣响。

从昨天接到通知,要把网站变成灰色,经过多方查找,找到网上流传的解决方案:

html {
  -webkit-filter: grayscale(100%);
  -moz-filter: grayscale(100%);
  -ms-filter: grayscale(100%);
  -o-filter: grayscale(100%);
  filter: grayscale(100%);
  filter: gray;
}

但是,发现IE10以上,把filter这个属性干掉了……所以高版本的IE跪了!!

不过方案还是有的,那就是强制让IE降级到IE9!

<meta http-equiv="X-UA-Compatible" content="IE=9" />

这样就可以保障所有的网站都变成灰色的了。

另外还有grayscale.js这种方案,但是看了下实现原理,是把所有img标签的文字都转成base64,然后灰度处理,这样性能会比较卡顿,所以不推荐用这种方式来做,而且这种方案是不支持样式背景图的……