在这种情况下,使用片段比 html 字符串有什么优势吗?
In this situation, is there any advantage of using fragments over html strings?
我正在编写一个聊天应用程序,它变得有点复杂,因为我希望它具有传递确认、消息缓存等功能。
现在,我处理消息缓存的方式是:
用户点击对话
从服务器获取的第一批消息存储在数组内的 "chunk" 中。
- 每个块都是一个文档片段,其中附加了 n 条消息(DOM 个元素)。
- 当用户向上滚动时,更多的块(碎片)被添加到数组中,因为它们是从服务器获取的。
- 当用户转到另一个对话,但随后决定加载之前加载的对话时,脚本会将所有片段附加到一个片段中,并将大片段附加到消息中 window。
如果用户已经获取了大量消息,则带有消息 "chunks" 的数组将如下所示:
conversation[2].chunks = [
#document-fragment,
#document-fragment,
#document-fragment
];
每个片段内部附加了大约 10 条消息。
在使用片段之前,我通过获取每条消息的 HTML 表示来使用字符串。像这样:
conversation[2].chunks = [
'<span class="msg">Hey</span><span class="msg">Hey</span>...',
'<span class="msg">Bla</span><span class="msg">bla</span>...'
];
我决定使用片段,因为我发现操作每条消息更容易(通过执行 fragment.getElementById 之类的操作),而不是必须使用 innerHTML 来解析字符串和操作元素。
但是,我现在质疑它是否是正确的选择,因为我不知道将片段保存在数组中是否实际上是内存密集型的,或者至少比字符串更占用内存。
另一个缺点是现在,如果我想将片段存储在 localStorage
中,我必须将每个片段的内容转换为 HTML 字符串,当我想使用 localStorage
时使用我的片段系统,我必须将每个 HTML 字符串转换回文档片段。
使用片段似乎更自然,但现在我想回去保留 HTML 字符串。不过,这有点麻烦,因为我没有旧代码了。
在这种情况下使用片段比 HTML 字符串有什么优势吗?
谢谢。
我正在编写一个聊天应用程序,它变得有点复杂,因为我希望它具有传递确认、消息缓存等功能。
现在,我处理消息缓存的方式是:
用户点击对话
从服务器获取的第一批消息存储在数组内的 "chunk" 中。
- 每个块都是一个文档片段,其中附加了 n 条消息(DOM 个元素)。
- 当用户向上滚动时,更多的块(碎片)被添加到数组中,因为它们是从服务器获取的。
- 当用户转到另一个对话,但随后决定加载之前加载的对话时,脚本会将所有片段附加到一个片段中,并将大片段附加到消息中 window。
如果用户已经获取了大量消息,则带有消息 "chunks" 的数组将如下所示:
conversation[2].chunks = [
#document-fragment,
#document-fragment,
#document-fragment
];
每个片段内部附加了大约 10 条消息。
在使用片段之前,我通过获取每条消息的 HTML 表示来使用字符串。像这样:
conversation[2].chunks = [
'<span class="msg">Hey</span><span class="msg">Hey</span>...',
'<span class="msg">Bla</span><span class="msg">bla</span>...'
];
我决定使用片段,因为我发现操作每条消息更容易(通过执行 fragment.getElementById 之类的操作),而不是必须使用 innerHTML 来解析字符串和操作元素。
但是,我现在质疑它是否是正确的选择,因为我不知道将片段保存在数组中是否实际上是内存密集型的,或者至少比字符串更占用内存。
另一个缺点是现在,如果我想将片段存储在 localStorage
中,我必须将每个片段的内容转换为 HTML 字符串,当我想使用 localStorage
时使用我的片段系统,我必须将每个 HTML 字符串转换回文档片段。
使用片段似乎更自然,但现在我想回去保留 HTML 字符串。不过,这有点麻烦,因为我没有旧代码了。
在这种情况下使用片段比 HTML 字符串有什么优势吗?
谢谢。