我正在构建我的第一个电子桌面应用程序。它从电子表格数据创建格式化的文档/书籍,以便打印或制作成PDF。当有一个大的文档(很多div)时,我正在尝试找出最好的方法来防止回流/重绘造成的性能损失。我发现,如果我将书放在iframe中,那么我就不会因为UI更改而遭受回流/重绘的痛苦,并且可以控制何时加载它。但是,如果我尝试创建一个PDF,我只能得到可见的iframe大小。
简单地说,我正在寻找最好的解决方案来防止复杂的HTML元素中的回流,同时仍然能够将其打印为PDF。
发布于 2021-05-24 07:26:11
我已经找到了解决这个问题的办法。
据我所知,对于没有运行服务器的电子桌面应用程序,您不能直接访问元素上的myIframe.contentDocument以执行append、innerHTML或offsetHeight等操作。您唯一可以做的事情是contentDocument.write(),但是一旦您使用了此方法,您就可以访问所有其他常规的DOM方法。我所能理解的最好的情况是,当您使用contentDocument.write()时,它实际上创建了一个虚拟的HTML文档。这就是我目前的变通方法,它就像一个魔咒,让我可以控制哪些元素回流,哪些元素不回流。
希望这对任何处理同样问题的人有所帮助。
https://stackoverflow.com/questions/67655707
复制相似问题