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

12 janeiro, 2025
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 a 1 avaliação

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 4 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.