美文网首页
解决前端html2canvas生成图片慢问题

解决前端html2canvas生成图片慢问题

作者: 懿小诺 | 来源:发表于2023-03-05 18:58 被阅读0次

    分享一个小发现

    这里首先直接说结论:
    由于html2canvas生成图片的过程会从html的head、body层标签开始遍历,所以对于项目较大,但是只需要对某个dom(下文以D称呼)生成图片的情况非常不友好!

        所以,一定要通过ignoreElements过滤掉大部分没用的标签。参考文档http://html2canvas.hertzen.com/configuration/
    
        至于怎么过滤,我用了dom方法comparedocumentposition(参考文档https://www.runoob.com/jsref/met-node-comparedocumentposition.html),先用上述方法判断当前遍历的element与D是否有父子关系,有关系则不忽略,没关系的话还要判断是否head标签和样式的link标签和style标签(如style标签较多的话可以考虑对style也按需忽略),其余标签可以忽略。如果D里有滚动的话,还要通过对element的offsetTop判断在可视范围外则忽略。
    
        由于html2canvas需要通过拿到的style来计算图片里的显示样式,所以需要保留部分需要的style标签,并留一下生成的图片样式会不会有问题。
    
    
        这样下来效率会得到质的提升!对于我的现状来说,一个又长又臭的破elUI表格从20秒提升到1秒,很nice!
    

    相关文章

      网友评论

          本文标题:解决前端html2canvas生成图片慢问题

          本文链接:https://www.haomeiwen.com/subject/nyhpldtx.html