前后端分离的今天,后台提供的API一般都是JSON格式数据,但要知道这只是一种格式选项,其它有很多,比如XML。并不是任何服务通讯,前后端通讯都会使用JSON,一些服务我们也会明确使用XML而非JSON。因此对于两种格式的区别需要明晰,这样才能按需采用。

定义

了解一个技术先从命名及发音开始,具体JSON,XML的介绍见WIKI

JSON:JavaScript Object Notation

阅读全文 »

Git越玩越喜欢,但有些底层的认识还不系统全面,比如快照是什么,Git又是如何存储这些快照的,关于这些机理,这里Mark下。

快照记录

  • Git在每次commit时会对仓库中所有文件进行扫描,如果某文件发生变化,则会将新文件生成一个Blob二进制文件,记录当前Commit时文件的所有内容,如果文件没有变化,则记录一个链接指向之前存储的文件

  • 对于单次commit本身有个索引存储,利用这个索引可以找到这些变化和没变化的文件

下图可以方便理解每个快照即版本的仓库情况

阅读全文 »

最近WEB遇到了两个问题,一个是JS报错SyntaxError: The URL must not contain a fragment,一个是window.btoa报错,经过调查都是编码问题,平时因为更多的使用框架从而折叠这部分的认知,因此这里Mark下。

错误截图

相关知识点

阅读全文 »

一直很喜欢Mac的Touch ID及Apple watch的解锁体验,但身为开发,日常还经常会使用到shell sudo,这时也会提示输入Mac密码,于是我在想是不是也可以用Touch ID及Apple watch实现授权呢,惊喜发现还真可以。

配置方式

注意:这里因为我要实现同时支持Touch ID及Apple watch,因此安装以下两个库,只需要一种的,安装目标库及配置即可。

  1. 下载这两个仓库,推荐Git Clone方式

  2. install package

    在每个仓库目录下执行

    1
    2
    $ sudo make install

  3. 编辑sudo配置,开启授权

1
$ sudo vi /etc/pam.d/sudo
阅读全文 »

SPA应用的优势本来是流畅化的类App体验,但是随着业务功能的增加,代码逐步变得臃肿,性能也会出现瓶颈,因此就进入一个课题-性能优化。

其中一个优化的手段就是降低渲染次数。

这里以React的实际代码为例,当然Angular,Vue类似。

无论是哪个JS框架,实际上都是动态渲染新Dom,而框架带来的组件化将整个页面切割为N个组件,因此渲染更新也就成了局部,但是如果使用不当就会出现重复渲染,多余渲染问题,所以对应就应该降低渲染次数,说白了就是只在该渲染时,该渲染的元素身上,执行渲染。

React下的具体优化措施

阅读全文 »
0%