允许网站在执行 document.innerHTML 命令时响应
Allow website to be responsive whilst document.innerHTML commands are being executed
快速总结一下,我有一个 javascript 文件,它正在将 HTML 注入到 HTML 文件中。用户从日期选择器中选择一个日期并读取 CSV 文件。然后输出包含从日期选择器中选择的日期的每一行,如下所示:
let messageCode = `
<div class="row msg_container base_sent">
<div class="col-md-10 col-xs-10">
<div class="messages msg_sent">
<p>${message}</p>
<time datetime="2009-11-13T20:00">${user} • ${time}</time>
</div>
</div>
</div>
`;
container.innerHTML += messageCode;
但是,通常需要输出大约2,000条消息。这导致用户在从日期选择器中选择日期后有时不得不等待 45 秒。
我想知道是否有一种方法可以在允许用户滚动的同时进行 HTML 注入。因此,在注入 HTML 时,用户几乎可以向下滚动页面。
与其每次用户选择日期时从 CSV 文件中获取数据,不如在页面加载时获取文件、缓存它并从缓存中读取数据会更好。
有一些插件可以帮助渲染大数据,但目前我想不出一个,但一旦想到就会通知你。
希望对您有所帮助。
尝试将 CSV 查找任务包装在 async
函数中,并 await
返回结果,然后再注入 DOM。
您的 async
函数之外的任何代码都将执行,并且您的 innerHTML
注入将 运行 一旦您的 await 查找返回。
快速总结一下,我有一个 javascript 文件,它正在将 HTML 注入到 HTML 文件中。用户从日期选择器中选择一个日期并读取 CSV 文件。然后输出包含从日期选择器中选择的日期的每一行,如下所示:
let messageCode = `
<div class="row msg_container base_sent">
<div class="col-md-10 col-xs-10">
<div class="messages msg_sent">
<p>${message}</p>
<time datetime="2009-11-13T20:00">${user} • ${time}</time>
</div>
</div>
</div>
`;
container.innerHTML += messageCode;
但是,通常需要输出大约2,000条消息。这导致用户在从日期选择器中选择日期后有时不得不等待 45 秒。
我想知道是否有一种方法可以在允许用户滚动的同时进行 HTML 注入。因此,在注入 HTML 时,用户几乎可以向下滚动页面。
与其每次用户选择日期时从 CSV 文件中获取数据,不如在页面加载时获取文件、缓存它并从缓存中读取数据会更好。
有一些插件可以帮助渲染大数据,但目前我想不出一个,但一旦想到就会通知你。
希望对您有所帮助。
尝试将 CSV 查找任务包装在 async
函数中,并 await
返回结果,然后再注入 DOM。
您的 async
函数之外的任何代码都将执行,并且您的 innerHTML
注入将 运行 一旦您的 await 查找返回。