electron相关 tips
简介
electron是用web技术编译原生桌面应用的框架,其基于node.js
与Chromium
。简单来讲就是让程序跑在Chromium
中,然后结合node.js
,通过ipc
通讯,使应用可以突破浏览器沙盒的限制,访问本地资源。electron最重要的特点主要以下两个:
基于web技术,开放效率高。
跨平台能力强,一套代码可以几乎无成本生成windows、mac、linux三个平台应用。
electron是用web技术编译原生桌面应用的框架,其基于node.js
与Chromium
。简单来讲就是让程序跑在Chromium
中,然后结合node.js
,通过ipc
通讯,使应用可以突破浏览器沙盒的限制,访问本地资源。electron最重要的特点主要以下两个:
基于web技术,开放效率高。
跨平台能力强,一套代码可以几乎无成本生成windows、mac、linux三个平台应用。
Extended Attributes
即扩展文件属性, 是文件系统的一个功能。它允许用户将计算机文件与未被文件系统所解释的元数据关联起来。其典型应用包括存储文档作者、普通文本文件的字符编码或者校验码。
在Linux操作系统中,如果libattr功能在内核设置中被打开,ext2、ext3、ext4、JFS、ReiserFS以及XFS文件系统都支持扩展属性(英文简写为xattr)
Mac OS X 10.4 及以上版本在 HFS+ 文件系统上也支持xattr
JS中可以使用fs-xattr 读取和写入xattr
修改xattr不会修改文件的mtime,故可以将需要存储的数据及time stamp一起存入xattr,读取时通过比较mtime,可以检验数据的时效性。
windows不支持xattr,但是可以使用NTFS的Alternate Data Streams
来代替,对应的JS库是 fs-ads
但是需要注意的是,修改ads会改变文件的mtime,所以在保证数据的时效性方面比较麻烦。
采用 atime + size
的方法大部分情况可以保证准确性,但并不完备。
利用Async-await写了读取本地文件并上传至服务器的程序。
Async-await写起来有种一气呵成的感觉,然而实际业务中要考虑到更为复杂的状态管理却用不了,故记录在这里。