0%

electron 程序在第一次启动时要加载很多内容,默认会有一段白屏的时间。

可通过以下方法优化:

  • 创建窗口时不显示
  • 当渲染完成时再显示

参考代码为:

1
2
3
4
5
6
7
mainWindow = new BrowserWindow({
show: false
});
mainWindow.loadURL(winURL);
mainWindow.on("ready-to-show", () => {
mainWindow.show();
});

使用 echarts 进行大数据量绘图时,可通过以下方法改善性能。

  • 关掉动画: animation
  • 使用采样:series 下增加 sampling 属性
  • 使用 dataZoom 局部加载(如果设置为 0-100,对第一次加载速度没有提升。主要目的是改善操作体验。)
    • dataZoom 有三种类型
      • inside:嵌入图形(可以用鼠标点击,在图形中进行上下左右移动)
      • slider:滑块(在侧边,通过拖拽进行缩放)
      • select:通过 toolbox.feature.dataZoom 实现,可用鼠标选择缩放区域、保存图形等。
    • dataZoom 可以控制多个 Axis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var options = {
animation: false,
toolbox: {
show: true,
feature: {
dataZoom: {
yAxisIndex: "none"
},
restore: {},
saveAsImage: {}
}
},
dataZoom: [
{
type: "inside",
start: 0,
end: 100,
xAxisIndex: axis_ids
},
{
start: 0,
end: 100,
type: "slider",
xAxisIndex: axis_ids
}
],
// ...
series: [
{
type: "line",
sampling: "average"
}
]
};

用 electron-vue 构建 windows 桌面应用,包构建器为 electron-builder 。

在执行 npm run build 时,会出现各种异常,关键点整理如下:

不要使用 cnpm 进行安装,改用 yarn

可使用 yarn 国内加速, 配置:

yarn config set registry "https://registry.npm.taobao.org"
yarn config set sass_binary_site "https://npm.taobao.org/mirrors/node-sass/"
yarn config set phantomjs_cdnurl "http://cnpmjs.org/downloads"
yarn config set electron_mirror "https://npm.taobao.org/mirrors/electron/"
yarn config set sqlite3_binary_host_mirror "https://foxgis.oss-cn-shanghai.aliyuncs.com/"
yarn config set profiler_binary_host_mirror "https://npm.taobao.org/mirrors/node-inspector/"
yarn config set chromedriver_cdnurl "https://cdn.npm.taobao.org/dist/chromedriver"

注意:只添加第一个时,会出现编译 fresh package 卡住的情况,推荐全都添加。

build 时会出现下载包超时的情况

解决方案:electron 打包踩过的坑总结

大致思路是,根据控制台下载提示,手工下载一些包到对应的目录。

  • electron,不需要解压,放在 AppData\Local\electron\Cache 下面。
  • electron-builder 对应的包,需要解压到 AppData\Local\electron-builder\cache\<包名>\<包名+版本号>

详细目录为:(X.X.X.X 代表版本号)

  • AppData\Local\electron\Cache(不需要解压)
    • electron-vX.X.X-win32-x64.zip
    • SHASUMS256.txt-X.X.X
  • AppData\Local\electron-builder\cache (有版本号的目录下为解压过,包含 exe 的目录)
    • winCoseSign
      • winCodeSign-X.X.X
    • nsis
      • nsis-X.X.X.X
      • nsis-resources-X.X.X.X

判断python的dict是否包含某个key是一个常见操作。

一般有两种方案:

1
2
3
4
5
# 方案A(推荐)
key in dummy_dict

# 方案B
key in dummy_dict.keys()

结论

这里通过对比测试,结论为:

  • 单纯检查key是否存在:不使用 .keys() 效率更高
  • 如果需要检查并取出value,可考虑使用 dict.get 方法

详细对比测试结果

阅读全文 »

Docker默认的image save 功能是tar格式的,没有经过压缩。

如果需要在多个节点或网络环境传输的话,可以用gzip压缩一下。具体操作方法为:

1
2
3
4
5
# 保存
docker image save <your_image> | gzip > image_file.tar.gz

# 导入(可直接导入tar.gz的包,不需要先解压)
docker image load < image_file.tar.gz