Skip to content
Adam Bradley edited this page Jan 14, 2022 · 16 revisions

Partytown will use Atomics when they're enabled by the browser. Some of the advantages include:

  • 10x faster communication between threads compared to the service-worker requests
  • 5% smaller build file compared to the service-worker build
  • No proxytown requests in the network tab
  • Less http requests to initialize the Partytown library
  • Partytown service-worker is no longer used

Document Response Headers

To enable Atomics communication, the browser's crossOriginIsolated readonly property should be true. The crossOriginIsolated property is only set to true, by the browser, when the document includes these http response headers:

Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin

Setting Cross-Origin Attribute

The biggest thing to highlight is that the Cross-Origin-Embedder-Policy: require-corp does not allow images, scripts, videos, etc. to be loaded from another origin. For example, when this header is set, any scripts or images to a CDN will no longer work.

However, the crossorigin attribute can be used on individual elements, such as <audio>, <img>, <link>, <script>, and <video>, which allows there requests to go through again and not be blocked.

Below is an example of setting the crossorigin attribute on an image:

<img src="https://c.tenor.com/8wBCqZH60U8AAAAC/computer-cat.gif" crossorigin />

Additional Resources

Clone this wiki locally