King Mui

用艺术的眼光发现技术的美

CentOS 升级 Git 到最新版本

CentOS 上的 Git 最新版本只有1.8.3,因此我们需要自己重新安装一遍 。

卸载旧版本 Git

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 安装 Development tools
$ yum -y groupinstall Development tools

# GCC 用于编译安装包
$ yum install gcc perl-ExtUtils-MakeMaker

# *卸载 CentOS 自带的老版本 Git
$ yum -y remove git

# 安装前环境配置
$ yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc xmlto perl-devel perl-CPAN autoconf*

# 系统检测(CentOS 7.4 64位)
$ cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)
$ uname -a
Linux rmhost 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
阅读全文 »

虽然很多语言宣称:“一切皆是对象”,但在 javascript 中,并不是所有的值都是对象。这篇博文解释了 javascript 中的两种值类型:原始值(primitive)和对象(object),以及混合使用两种类型时的注意事项。

原始值 vs 对象

javascript 中的值可以被划分为两大类:原始值(primitive)和对象(object)。

下面的值是原始值。

  1. 字符串
  2. 数字:在 JavaScript 中所有的数字都是浮点数
  3. 布尔值
  4. null
  5. undefined
阅读全文 »

前面的话

当我们通过某些行为(点击、移动或滚动)触发页面进行大面积绘制的时候,浏览器往往是没有准备的,只能被动使用CPU去计算与重绘,由于没有事先准备,应付渲染够呛,于是掉帧、卡顿。而 will-change 则是真正的行为触发之前告诉浏览器:“浏览器同学,我待会儿就要变形了,你心理和生理上都准备准备”。于是乎,浏览器同学把GPU给拉上了,从容应对即将到来的变形。而CSS属性 will-change 为web开发者提供了一种告知浏览器该元素会有哪些变化的方法,这样浏览器可以在元素属性真正发生变化之前提前做好对应的优化准备工作。 这种优化可以将一部分复杂的计算工作提前准备好,使页面的反应更为快速灵敏。本文将介绍CSS属性 will-change 。

准备知识

GPU是图形处理器,专门处理和绘制图形相关的硬件。GPU是专为执行复杂的数学和几何计算而设计的,使得CPU从图形处理的任务中解放出来,可以执行其他更多的系统任务。

所谓硬件加速,就是在计算机中把计算量非常大的工作分配给专门的硬件来处理,减轻CPU的工作量。

CSS的动画、变形、渐变并不会自动触发GPU加速,而是使用浏览器稍慢的软件渲染引擎。在 transitiontransformanimation 的世界里,应该卸载进程到GPU以加速速度。只有3D变形会有自己的layer,而2D变形则不会。

阅读全文 »

随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各式各样的需求,会经常性地在本地存储大量的数据。传统方式我们是以document.cookie来进行存储的,但是由于cookie的存储大小只有4k左右,并且解析也相当的复杂,每一次发送请求还会携带上cookie,这不仅会造成带宽的浪费,还会给开发者带来诸多不便。在此窘境下,HTML5规范提出了新的解决方案——Web存储。Web存储是将数据存储到用户的电脑上,这样不仅可以缓解服务器压力,同时也提高了用户体验。在 HTML5 中,数据不是由每个服务器请求传递的,而是只有在请求时使用数据。它使在不影响网站性能的情况下存储大量数据成为可能。

cookie概念

  • cookie是客户端保持状态的解决方案。cookie存储了服务端发送给客户端的一些特殊信息,这些信息以文本的方式存储在客户端。每当客户端向服务端发送请求时,cookie数据始终会在同源的http请求中携带(即使不需要),即cookie会在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发送给服务器,仅会在本地存储。
阅读全文 »