【发布时间】:2020-02-10 04:08:06
【问题描述】:
我正在创建一个应用程序,用户可以在其中创建显示在网格中的注释。创建便笺时,也会创建相应的文本文件。当用户打开应用程序时,应用程序会读取笔记文件的目录,检索每个笔记文件的内容,然后将其显示在网格中。
这个想法是通过拖放使笔记网格重新排列。
我以前从未这样做过,所以我正在努力设计一种有效的方法来缓存或记住用户排列笔记的顺序。我想将每个音符的位置存储在文件名本身中。
1_note3.txt
2_note7.txt
3_note4.txt
4_note2.txt
5_note6.txt
6_note8.txt
7_note5.txt
8_note1.txt
这似乎不是一个好方法,因为每当注释重新排列时,我都必须重命名一堆文件。例如,假设用户创建了一个新注释——为了用户体验,它将作为网格的第一个子节点插入——所有文件名都必须重命名。
1_note9.txt
2_note3.txt
3_note7.txt
4_note4.txt
5_note2.txt
6_note6.txt
7_note8.txt
8_note5.txt
9_note1.txt
此外,假设用户现在通过将第一个音符移动到顶行的第四个位置来重新排列音符。我现在必须重命名该文件和以下所有文件。
2_note3.txt
3_note7.txt
4_note4.txt
5_note9.txt
6_note2.txt
7_note6.txt
8_note8.txt
9_note5.txt
10_note1.txt
我还可以将顺序或排列存储在单独的文件中,并专门操作该文件的内容而不是实际的文件名。
arrangement.txt
note3.txt
note7.txt
note4.txt
...
虽然这可能优于最后一种方法,但它似乎也不是很好,因为仍然存在额外的开销。例如,当应用程序启动时,我首先必须读取该文件以获得用户排列,然后再对文件进行相应的排序。
有没有人有实施类似的经验?有没有更好的办法?
【问题讨论】:
标签: node.js architecture drag-and-drop filesystems fs