1

我正在使用 Angular UI 在网站上包含模态窗口,每次单击打开模态窗口时,在将 HTML 注入 DOM 之前都会有明显的延迟。

我尝试了一切以找出延迟的来源,我将模板放在缓存中,因此它不会从 ajax 请求中加载它。我将计时器放在开发工具控制台等中,最终发现由于打开模式时“重新计算样式”而延迟了大约 200 毫秒。但是,此时模态本身只有 3 个 HTML 标记和 2 个单词,因此不会导致延迟。

然后我意识到它正在重新计算和重新绘制整个页面,因为模式绝对位于页面上方。页面本身很长,包含很多重复的元素,所以需要重绘。

我不能在这里或在小提琴中轻易重复它,但基本上它是一个非常长的页面,包含大量 HTML,并且模态本身是由 Angular UI 在结束正文标记之前注入的。模态本身就是 position:absolute; 顶部:0;对:0;底部:0;左:0;填满屏幕。

我已经在模式和页面内容上尝试了 translateZ(0) 技巧,并且我尝试过 position:fixed 而不是 absolute。如果没有 CHrome 尝试强制重新计算整个页面上的样式,我似乎无法找到一种覆盖模式的方法。

任何想法都将不胜感激。

4

0 回答 0