【问题标题】:React-pdf rendering affecting the whole UI ThreadReact-pdf 渲染影响整个 UI 线程
【发布时间】:2021-12-23 02:01:55
【问题描述】:

我正在使用 react-pdf 来呈现 pdf。当我在输入字段中键入时,呈现的 pdf 将发生变化。

过程是这样的......
一、当输入字段发生变化时,触发setBlobData

setBlobData: async (template) => {
    try {
        let blobData = await pdf(template).toBlob()
        store.setState({ pdfBlob: blobData });
    } catch (error) {
        console.log(error)
        return false;
    }
}

然后<Document></Document> 重新渲染,

顺便说一句,我在输入字段更改时设置了 timeOut.5ms,以便在触发 setBlobData 之前等待 .5ms 不活动。 请注意将间隔设置为至少1 second 太长而无法反映更改,这就是为什么我将其设置为.5ms

我的结论是,每当<Document> 重新渲染时,它都会阻塞整个 UI 线程。
因此,输入字段键入不流畅。 所以我需要的可能是将<Document> 组件分离到一个在后台/单独线程上运行的包装器中?我读过Web Workers,但我不太清楚如何使用它。

知道如何解决这个问题吗?

**已编辑:**我还记住了<Document>

【问题讨论】:

  • 我从来没有像你那样创建 PDF,但是可以对那个库进行异步调用吗?这将使您免于在某些时间阻塞 UI 线程。断章取意,我在浏览视频here时遇到了这个问题

标签: reactjs jspdf web-worker react-pdf


【解决方案1】:

从我在包中看到的内容来看,它已经应该使用网络工作者了。 see here

【讨论】:

  • 嗯,我已经在使用相同的版本了。但没有运气。因此它与网络工作者无关?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-10
  • 1970-01-01
  • 2022-11-17
  • 2022-11-14
  • 1970-01-01
  • 2021-05-23
  • 1970-01-01
相关资源
最近更新 更多