很少用到,或者只在特定的几个笔记中使用的代码,因为没必要一直加载,所以动态加载来提升性能。
又或者对性能消耗比较大的复杂代码,尽量使其只在使用时加载执行,其他时间卸载掉以提升性能。
Dataview 的动态视图是在调用时读取相关文件的代码来执行的。它需要一个 view.js
和一个 view.css
文件,显然借此可以实现 JS 和 CSS 的动态调用。
这一点在说明文档中也有体现:dv.view()
涉及文件读写,所以需要在前面加上 await
。
Dataview 代码在每次笔记更新之后都会重新执行,所以不适合频繁编辑的文件。
Templater 的脚本会在启动后全部载入,所以应当少用。
比如笔记分栏,虽然可以用 CSS Snippets,但如果只有某一篇笔记中使用,而全局加载此片段,就有点点浪费了。同时还有一个问题,同步的时候可能并没有同步 .obsidian
文件夹,所以 CSS Snippets 也没被同步。
这时候使用 Dataview 的自定义视图来动态插入 CSS,虽然在笔记中要多添加一个代码块,但性能和稳定性都更好一些。