🎉 USE O CUPOM DESCONTO.FULL | 20% OFF acima de R$ 50,00

Como corrigir JavaScript do JetEngine removido pelo Perfmatters

Time Full Services Time Full Services
Tipo Performance & Velocidade
Nome do erro JavaScript do JetEngine removido pelo Perfmatters EN: Perfmatters removing JetEngine JavaScript
Severidade Grave
Descrição O JavaScript do JetEngine removido pelo Perfmatters acontece quando o Delay JavaScript ou o Script Manager tira o jet-engine frontend.min.js e o jQuery da página. O resultado e Listing Grid vazio, JetSmartFilters que não filtra e Load More que não responde. A correção e excluir os scripts do JetEngine do delay, não desligar o Perfmatters.

O que é o JavaScript do JetEngine removido pelo Perfmatters?

O JavaScript do JetEngine removido pelo Perfmatters e o que ocorre quando uma otimização de JS do Perfmatters impede o jet-engine frontend.min.js de executar no momento certo. O JetEngine, da Crocoblock, monta conteúdo dinâmico no navegador: Listing Grid com AJAX, Load More, JetSmartFilters e Dynamic Visibility dependem do script frontend do plugin, do jet-plugins.js e do jQuery para fazer as requisicoes e desenhar os itens na tela.

O Perfmatters tem dois recursos que podem retirar esses scripts. O Delay JavaScript, no modo Delay all scripts, remove os arquivos da cascata e so os executa na primeira interacao do usuário (rolar, mover o mouse ou tocar), entao o listing nasce vazio até alguem interagir. O Script Manager desativa scripts por página ou por tipo de conteúdo, e se a regra desligar o jet-engine numa página que usa um listing dinâmico, o conteúdo simplesmente não carrega. Em nenhum dos casos os plugins estão com defeito: o Perfmatters apenas não sabe, sozinho, que aqueles scripts são criticos para a renderizacao. A FULL configura esse par de forma conjunta nos sites que gerencia, em vez de tratar cada plugin isoladamente.

Como identificar

  • O Listing Grid do JetEngine carrega vazio no frontend, mesmo havendo posts ou itens para exibir.
  • Os JetSmartFilters não filtram: marcar uma opção não atualiza a lista, ou a lista some por completo.
  • O botão Load More do JetEngine não faz nada ao ser clicado e a página não busca mais itens.
  • Widgets com Dynamic Visibility ou conteúdo dinâmico do JetEngine so aparecem depois que o usuário rola ou move o mouse.
  • O console do navegador mostra a mensagem “jQuery is not defined” ou “JetEngine is not defined” enquanto o script esta adiado.
  • No Script Manager do Perfmatters o jet-engine aparece desativado (toggle vermelho) na página afetada ou no tipo de conteúdo.

Como prevenir

  • Adicione as exclusoes do JetEngine na caixa Excluded from delay antes de ligar o Delay all scripts em producao, em vez de descobrir o listing vazio depois
  • Sempre que criar uma regra no Script Manager por tipo de conteúdo, teste uma página com Listing Grid daquele tipo antes de salvar a regra para todo o site
  • Mantenha desligado o recurso de combinar JavaScript de qualquer outro plugin de cache, porque o Perfmatters exige o combine desligado para o Delay JavaScript funcionar
  • Após cada mudanca no Delay, no Defer ou no Script Manager, limpe o cache e valide listing, filtro e Load More na página pública, nunca apenas dentro do editor

Causa

  • O Delay JavaScript do Perfmatters esta em Delay all scripts e remove o jet-engine frontend.min.js da cascata, fazendo o listing dinâmico so montar na primeira interacao do usuário.
  • O jquery.min.js foi adiado pelo Delay JavaScript e os scripts do JetEngine que dependem de jQuery quebram com jQuery is not defined no console.
  • O arquivo jet-plugins.js, que serve de ponte entre o JetEngine e o JetSmartFilters, foi adiado e por isso o filtro não dispara a requisicao AJAX.
  • Uma regra do Script Manager desativou o jet-engine numa página ou tipo de conteúdo que usa Listing Grid, entao o script nem chega a ser carregado.
  • O Load More e a paginação AJAX do JetEngine usam admin-ajax.php e o handle do jet-engine foi adiado, fazendo o clique não disparar a chamada.
  • O recurso de combinar JavaScript de outro plugin de cache esta ligado junto com o Delay, e o Perfmatters exige o combine desligado para o delay funcionar.

Como resolver

  1. Confirme que a causa e o Perfmatters: antes de mexer em exclusoes, prove que a otimização de JavaScript e a culpada. Abra a página com o listing vazio e desligue temporariamente o Delay JavaScript. Se o Listing Grid volta a preencher e os filtros respondem, esta confirmado que o delay e a causa, e não um bug do JetEngine.
    Perfmatters -> JavaScript -> Delay -> desligar Delay JavaScript
    Limpar o cache do plugin de cache em uso e recarregar a página
  2. Exclua os scripts do JetEngine do Delay JavaScript: religue o Delay JavaScript e adicione os arquivos do JetEngine na caixa de exclusoes. Cada linha e um trecho do caminho ou do nome do script que o Perfmatters deixa de adiar. A lista abaixo cobre o frontend do JetEngine, o jet-plugins, o jet-smart-filters e o jQuery de que eles dependem.
  3. Perfmatters -> JavaScript -> Delay -> Excluded from delay (uma por linha):
    jquery.min.js
    jquery-core
    /jet-engine/assets/js/frontend.min.js
    /jet-engine/assets/lib/jet-plugins/jet-plugins.js
    /jet-engine/assets/js/jet-engine-lazy-load.min.js
    /jet-smart-filters/assets/js/jet-smart-filters.min.js
    JetEngineSettings
    JetEngineDynamicTablesSettings
  4. Repita as exclusoes no Defer JavaScript: se você também usa o Defer JavaScript, a mesma lista precisa entrar na caixa de exclusoes do defer. O delay e o defer agem em momentos diferentes do carregamento, entao excluir so de um deixa o outro adiar o script de novo e o listing continua vazio.
  5. Perfmatters -> JavaScript -> Defer -> Excluded from defer (uma por linha):
    jquery.min.js
    /jet-engine/assets/js/frontend.min.js
    /jet-smart-filters/assets/js/jet-smart-filters.min.js
  6. Reative o jet-engine no Script Manager: se o listing some so em páginas especificas, o problema esta no Script Manager, não no delay. Abra a página afetada com o Script Manager ligado, encontre o grupo do jet-engine e garanta que ele esteja ativo onde o listing aparece. Use o status por tipo de conteúdo para não precisar liberar página a página.
    Perfmatters -> Options -> Assets -> Script Manager -> ligar
    Abrir a página do listing com ?perfmatters no fim da URL
    Localizar o grupo jet-engine e marcar Status -> On
    Definir Current URL ou o Post Type que usa o Listing Grid
  7. Limpe o cache e valide o listing no frontend: depois de cada ajuste, limpe o cache do plugin de cache em uso e recarregue a página pública numa aba anonima, não o editor. Confira no console se as mensagens de jQuery is not defined sumiram e teste o Listing Grid, o filtro e o Load More antes de confiar na configuração.
    Limpar o cache do plugin de cache em uso
    Recarregar a página pública em aba anonima
    Abrir o console do navegador e confirmar zero erro de jQuery is not defined
HTML
# === Perfmatters > JavaScript > Delay > Excluded from delay ===
# Cole uma linha por exclusao. Tira esses scripts do Delay JavaScript
# para o JetEngine montar o listing, filtrar e fazer Load More a tempo.
jquery.min.js
jquery-core
/jet-engine/assets/js/frontend.min.js
/jet-engine/assets/lib/jet-plugins/jet-plugins.js
/jet-engine/assets/js/jet-engine-lazy-load.min.js
/jet-smart-filters/assets/js/jet-smart-filters.min.js
JetEngineSettings
JetEngineDynamicTablesSettings

# === Mesma lista tambem em Defer, se o Defer JavaScript estiver ligado ===
# Perfmatters > JavaScript > Defer > Excluded from defer
jquery.min.js
/jet-engine/assets/js/frontend.min.js
/jet-smart-filters/assets/js/jet-smart-filters.min.js

Perguntas frequentes

Preciso desligar o Perfmatters para o JetEngine funcionar?
Não. Os dois funcionam juntos quando você exclui os scripts do JetEngine do Delay JavaScript e mantem o jet-engine ativo no Script Manager. Desligar o Perfmatters serve so como teste para confirmar que a otimização e a causa. Depois disso, religue o recurso e aplique as exclusoes, assim você mantem o ganho de performance sem o listing vazio.
Por que o Listing Grid do JetEngine fica vazio depois de ligar o Delay JavaScript?
Porque o Delay JavaScript segura o jet-engine frontend.min.js e o jQuery até o usuário interagir com a página, e o listing depende desses scripts para montar e buscar os itens. Adicione o caminho /jet-engine/assets/js/frontend.min.js e o jquery.min.js na caixa Excluded from delay e limpe o cache para o conteúdo voltar a carregar de imediato.
Os JetSmartFilters pararam de filtrar. E o Perfmatters?
Provavelmente sim. O filtro depende do jet-smart-filters.min.js e do jet-plugins.js, que o Delay JavaScript adia, entao o clique não dispara a requisicao AJAX. Adicione o /jet-smart-filters/assets/js/jet-smart-filters.min.js e o jet-plugins.js na caixa Excluded from delay, limpe o cache e teste o filtro na página pública em aba anonima.
Qual a diferenca entre o Delay JavaScript e o Script Manager nesse erro?
O Delay JavaScript adia todos os scripts para depois da interacao do usuário, entao o listing nasce vazio em qualquer página até alguem rolar ou tocar. O Script Manager desativa scripts por página ou por tipo de conteúdo, entao o listing some so onde a regra desligou o jet-engine. O primeiro se resolve com exclusoes, o segundo reativando o jet-engine na página certa.
O Load More do JetEngine não responde ao clique. Como corrigir?
O Load More usa admin-ajax.php e o jet-engine frontend.min.js para buscar a próxima leva de itens, e o Delay JavaScript adiou esse script. Adicione o /jet-engine/assets/js/frontend.min.js na caixa Excluded from delay e, se você usa Defer JavaScript, repita a exclusão na caixa Excluded from defer. Limpe o cache e teste o botão em aba anonima.
Como sei quais scripts do JetEngine excluir no Perfmatters?
Abra o console do navegador na aba Network, filtre por jet-engine e jet-smart-filters e veja quais arquivos a página carrega. Em geral são o frontend.min.js do jet-engine, o jet-plugins.js e o jet-smart-filters.min.js, além do jquery.min.js de que todos dependem. Cole cada caminho, uma linha por arquivo, na caixa Excluded from delay.
Tenho de excluir os mesmos scripts no Delay e no Defer?
Sim, se você usa os dois recursos. O Delay JavaScript e o Defer JavaScript agem em momentos diferentes do carregamento, entao a mesma lista de scripts do JetEngine deve entrar na caixa Excluded from delay e na caixa Excluded from defer. Se so o delay estiver ligado, basta a primeira caixa.
O console mostra jQuery is not defined. O que isso significa?
Significa que o jquery.min.js foi adiado pelo Delay JavaScript e ainda não executou quando o script do JetEngine tentou usa-lo. Adicione o jquery.min.js e o handle jquery-core na caixa Excluded from delay para o jQuery carregar antes do jet-engine, depois limpe o cache e recarregue a página pública em aba anonima.

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes