# How to cancel page rendering

**URL:** <https://pdfjs.community/t/how-to-cancel-page-rendering/2385>\
**Category:** Technical Support\
**Created:** [February 21, 2023, 9:58am UTC](https://pdfjs.community/t/how-to-cancel-page-rendering/2385 "2023-02-21T09:58:17Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![user45](https://avatars.discourse-cdn.com/v4/letter/u/7ab992/32.png) [@user45](https://pdfjs.community/u/user45)\
**Post date:** [February 21, 2023, 9:58am UTC](https://pdfjs.community/t/how-to-cancel-page-rendering/2385/1 "2023-02-21T09:58:17Z")

</div>

**Which product are you using?**  
PDF.js Express Plus

**PDF.js Express Version**  
8.7.0

**Detailed description of issue**  
When I open huge document then I waiting for rendering. Before document is full rendered I close (hide) viewer and them it’s look like pages are still rendered in background - my site and browser are slowdown (till I reload page).

I hide viewer according to [best practices](https://pdfjs.express/documentation/learn-more/best-practices)  
and on hide viewer I also try to relase resources

> viewer.UI.closeDocument();  
> viewer.Core.documentViewer.closeDocument();  
> viewer.Core.documentViewer.dispose();

How can I cancel rendering and release resources properly?

**Expected behaviour**  
Rendering is cancelled, all resources are released properly and no operation is performed in the background.

**Does your issue happen with every document, or just one?**  
Large documents

---

<div class="post-metadata">

**Author:** ![tgordon](https://avatars.discourse-cdn.com/v4/letter/t/aca169/32.png) [@tgordon](https://pdfjs.community/u/tgordon)\
**Post date:** [February 21, 2023, 6:40pm UTC](https://pdfjs.community/t/how-to-cancel-page-rendering/2385/3 "2023-02-21T18:40:08Z")

</div>

Hello user45,

Can you provide a sample project to reproduce this issue?

Best regards,  
Tyler Gordon

---

<div class="post-metadata">

**Author:** ![user45](https://avatars.discourse-cdn.com/v4/letter/u/7ab992/32.png) [@user45](https://pdfjs.community/u/user45)\
**Post date:** [February 22, 2023, 7:33am UTC](https://pdfjs.community/t/how-to-cancel-page-rendering/2385/4 "2023-02-22T07:33:08Z")

</div>

I loaded document with

> viewer.UI.loadDocument

and after some time close them and try to release resources as I already mentioned.  
How exactly I should close, stopping background operations and release resources properly of viewer?

---

<div class="post-metadata">

**Author:** ![tgordon](https://avatars.discourse-cdn.com/v4/letter/t/aca169/32.png) [@tgordon](https://pdfjs.community/u/tgordon)\
**Post date:** [February 22, 2023, 8:42am UTC](https://pdfjs.community/t/how-to-cancel-page-rendering/2385/5 "2023-02-22T08:42:41Z")

</div>

Hello user45,

Please ensure any references to the viewer have been cleared or any properties being saved, this can keep a reference to the instance stored in memory.

If you are still downloading the document from the server or fetching data, you’ll need to cancel that as well.

Best regards,  
Tyler

---

<div class="post-metadata">

**Author:** ![user45](https://avatars.discourse-cdn.com/v4/letter/u/7ab992/32.png) [@user45](https://pdfjs.community/u/user45)\
**Post date:** [February 28, 2023, 8:53am UTC](https://pdfjs.community/t/how-to-cancel-page-rendering/2385/6 "2023-02-28T08:53:53Z")

</div>

Thank you, I’m ensured of that.  
Could you explain me, which exactly functions I should call when I close (hide) webviewer (to achive stop rendering and release resources)?

---

<div class="post-metadata">

**Author:** ![tgordon](https://avatars.discourse-cdn.com/v4/letter/t/aca169/32.png) [@tgordon](https://pdfjs.community/u/tgordon)\
**Post date:** [March 1, 2023, 12:18am UTC](https://pdfjs.community/t/how-to-cancel-page-rendering/2385/7 "2023-03-01T00:18:28Z")

</div>

Hello user45,

I would first dispose the DocumentViewer using (be sure to dereference any refs to documentviewer:

```javascript
let docViewer = instance.Core.documentViewer.
...
docViewer.dispose();
docViewer = null;

```

And then do the same for the UI (same with the derefrencing):

```javascript
instance.UI.dispose();

```

Best regards,  
Tyler
