Web Worker Offloading

Descrição

Este plugin descarrega a execução do JavaScript para um web worker, melhorando o desempenho ao liberar a execução principal. Isso deve se traduzir em melhoria nas métricas Interação com Próxima Exibição (INP).

Esta funcionalidade é experimental.

Para fazer com que um script seja descarregado para um worker, basta adicionar dados de um worker a um script registrado. Por exemplo,
se você tiver um script registrado com o handle de foo, você pode descarregá-lo para um web worker fazendo:

wp_script_add_data( 'foo', 'worker', true );

Diferentemente das estratégias de carregamento de scripts (assíncrono/diferido), quaisquer scripts inline associados ao script registrado também serão descarregados para o worker correspondente, ao passo que em estratégias de script, um script inline posterior impediria o script original de ser atrasado.

De outra maneira, no momento, o plugin já contém o código para descarregar o Google Analytics para um web worker para o seguinte plugin:

Uma vez ativado, acompanhe suas estatísticas para garantir que todos os eventos esperados estejam sendo registrados. Ao mesmo tempo, revise as métricas INP para avaliar se há melhorias.

Este plugin depende da biblioteca Partytown 🎉 da Builder.io, disponível sob a licença MIT. Esta biblioteca está em beta e há alguns erros ainda não resolvidos.

A configuração do Partytown pode ser modificada por meio do filtro plwwo_configuration. Por exemplo:

<?php
add_filter( 'plwwo_configuration', function ( $config ) {
    $config['mainWindowAccessors'][] = 'wp'; // Make the wp global available in the worker (e.g. wp.i18n and wp.hooks).
    return $config;
} );

Entretanto, nem todas as opções de configuração podem ser serializadas dessa forma em um JSON; por exemplo, a configuração resolveUrl é uma função. Para especificar isso, você pode adicionar um script inline como a seguir.

<?php
add_action(
    'wp_enqueue_scripts',
    function () {
        wp_add_inline_script(
            'web-worker-offloading',
            <<<JS
            window.partytown = {
                ...(window.partytown || {}),
                resolveUrl: (url, location, type) => {
                    if (type === 'script') {
                        const proxyUrl = new URL('https://my-reverse-proxy.example.com/');
                        proxyUrl.searchParams.append('url', url.href);
                        return proxyUrl;
                    }
                    return url;
                },
            };
            JS,
            'before'
        );
    }
);

Há também muitas opções de configuração que não estão documentadas; consulte as definições do TypeScript para saber mais.

Perguntas frequentes

Por que meus scripts descarregados não estão rodando e se vê um erro 404 para o arquivo `partytown-sandbox-sw.html` no console?

Se você notar que os scripts descarregados não estão funcionando e também estiver vendo um erro 404 no console para um arquivo em /wp-content/plugins/web-worker-offloading/build/partytown-sandbox-sw.html?1727389399791, é provável que você tenha o Chrome DevTools aberto com a opção “Desviar para rede” habilitada no painel Aplicativo.

Onde posso relatar erros de segurança?

A equipe de desempenho e a comunidade WordPress levam as brechas de segurança a sério. Apreciamos os seus esforços para divulgar de forma responsável as suas descobertas e faremos nosso melhor para reconhecer as suas contribuições.

Para comunicar uma brecha de segurança, visite o programa WordPress HackerOne.

Como eu posso contribuir com o plugin?

As contribuições são sempre bem-vindas! Saiba mais sobre como se envolver consultando o Manual da Equipe de desempenho do WordPress

O código-fone do plugin está localizado no WordPress/performance repositório no GitHub.

Avaliações

26 setembro, 2025 1 resposta
I uploaded and activated. I assume that as the plugin details state that rankmath is integrated (rankmath has the option to load analytics locally- if i recall- which may affect it), that i didnt actually have to do anthing. However my gt metrix score deccreased, when i deactivated it went back up. So, at this point i cannot try on complicated site (buddypress, bb forum, geo directory, etc)- which is a pity as mobile is really getting hit with google analytics, tag etc- its the reason i took google ads off- it slows everyting way down. Anyway, just letting you know. Will keep an eye on this. It would be really helpful if there was more docs (we arent all developers)so we could think it through a bit more. Thanks Kenny
12 janeiro, 2025 1 resposta
Problems with Google Analytics and Google Tag ManagerTested: 1 week. While Enabled: No hits, no recorded live users/users in Google Analytics. Google Tag Manager also didnt get to connect to the site. – Clarity did record users live, and page hits. This is because Clarity is not included in the built-in integrationWhile disabled: Google Analytics got hits right away – same with Google Tag Manager.
Leia todas as 2 avaliações

Colaboradores e desenvolvedores

“Web Worker Offloading” é um programa de código aberto. As seguintes pessoas contribuíram para este plugin.

Colaboradores

Web Worker Offloading” foi traduzido para 5 localidades. Agradecemos aos tradutores por suas contribuições.

Traduzir o “Web Worker Offloading” para seu idioma.

Interessado no desenvolvimento?

Navegue pelo código, consulte o repositório SVN ou assine o registro de desenvolvimento por RSS.

Registro de alterações

0.2.0

Melhorias

  • Integra o Web Worker Offloading ao Google Site Kit. (1686)
  • Integra o Web Worker Offloading ao Rank Math SEO. (1685)
  • Serve scripts não-minificados quando o SCRIPT_DEBUG está ativado. (1643)

Correções de erros

  • Corrige eventos de rastreio como add_to_cart na integração com o WooCommerce. (1740)

0.1.1

Melhorias

  • Adiciona o gerador de meta Web Worker Offloading. (1598)

0.1.0

  • Lançamento inicial.