DOM Reflow是否可检测到?

时间:2017-12-27 11:02:13

标签: javascript reflow

我正在开发一个包含文件上传和下载的网站。

文件显示在一个表格中,其中包含一些相关信息。

我是从一个由PHP构建的数组中读取它们,然后通过JSON提供给JavaScript。我将它们逐个添加到表中。我正在运行一个函数来调整表中所有元素的字体大小,以便字体宽度始终是容器宽度的80%。

这是我的问题:

有时会遗漏几行。我可以想到为什么会发生这种情况的几个原因:

  1. 当我使用offsetWidth测量元素的宽度时,会导致重排,这可能会导致其他元素的offsetWidth在几毫秒内不可用,因此会跳过它们。
  2. 当调整字体大小的函数启动时,浏览器没有完成构建DOM。
    • 要明确:我在完成将所有内容添加到表格后几百毫秒开始。
    • 当我将该时间设置为例如300毫秒时,它会跳过比我设置为1000毫秒时更多的项目。
  3. 我对解决方案的想法是:

    1. 检测回流并等待它完成。
      • 这可以解决第一个原因
    2. 将所有内容添加到表中后强制重排,并等待完成。
      • 这可以解决第二个问题。

0 个答案:

没有答案