Como corrigir JavaScript do JetEngine removido pelo 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
- 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 - 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.
- 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 - 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.
- 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 - 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 - 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
# === 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














