【问题标题】:Cache and Read Files in Specific Order按特定顺序缓存和读取文件
【发布时间】: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


    【解决方案1】:

    您可能希望在键值映射数据结构中维护笔记网格的状态。您可以将此地图缓存在内存中或将其保存在单独的文件中。此键值映射将存储注释网格数据,其中“键”将在网格中具有位置顺序,“值”将具有相应文本文件的名称。如果注释被重新排列,您只需要更新两个键的值。

    【讨论】:

    • 我完全忘记了映射。明天去看看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    相关资源
    最近更新 更多