Se você está desenvolvendo mashups no Qlik Sense – dependendo de como eles foram criados – é bem provável que já tenha se deparado com isso: carregamento lento de objetos, demora na renderização do painel e usuários frustrados que abandonam a página antes mesmo dos seus elementos visuais aparecerem. Isso não é apenas irritante, é um problema de performance que prejudica todo o propósito da análise visual.
Recentemente, realizamos uma série de testes de benchmark comparando dois métodos populares para lidar com metadados de objetos do Qlik: a Capability API contra o Enigma.js. Os resultados foram claros e surpreendentes. Uma das abordagens entregou resultados significativamente mais rápidos de forma consistente, reduzindo o tempo de carregamento inicial em mais da metade.
Neste post, vamos detalhar o que realmente está deixando o seu mashup lento, compartilhar como alcançamos um aumento dramático de performance e analisar os prós e contras de abandonar a abstração em favor de velocidade bruta e controle.
Realizamos testes comparando duas abordagens comuns para trabalhar com metadados de objetos do Qlik:
Capability API: alto nível, fácil de usar
Enigma.js: baixo nível, acesso direto ao Qlik Engine.
O resultado?
Em quase todos os cenários, o Enigma.js foi até 3 vezes mais rápido.
Um mashup que levava 4 segundos para carregar na primeira renderização agora leva cerca de 1,5 segundo com o Enigma.js.
O que observamos
Com a Capability API, o Qlik injeta muita sobrecarga (overhead) na página:
- Arquivos de configuração JSON
- Múltiplas bibliotecas CSS e JS
- Wrappers adicionais e lógica de renderização extra
Embora isso seja ótimo para a velocidade de desenvolvimento, não é o ideal quando a velocidade da experiência do usuário é o que importa.
Nós eliminamos esse excesso usando Enigma.js puro, gerenciando manualmente os modelos de objetos e renderizando apenas o que precisávamos — e a diferença foi imediata.
Os Prós e Contras (Trade-Offs)
Ir de cabeça no Enigma não é para todo mundo — e tudo bem.
Você perde a simplicidade do app.getObject()
Você assume a responsabilidade pela lógica de renderização
Você precisa pensar mais como um desenvolvedor de motor (engine) do que como um criador de painéis
Mas se o seu objetivo é controle e performance, o esforço vale a pena.
Menos peso, menos abstração e uma experiência de usuário visivelmente mais rápida.
Créditos à Qlik
Vamos tirar um momento para valorizar algo:
A Qlik nos dá acesso ao seu motor através de múltiplas bibliotecas JavaScript.
Isso é raro no mercado de BI.
E abre um mundo de possibilidades para quem está disposto a explorar o que há debaixo do capô — desde mashups/aplicações web leves até aplicativos totalmente personalizados que exploram o motor de maneiras criativas.
Na Cluster, somos especialistas em projetar aplicações web personalizadas e de alta performance em Qlik que vão além do básico. Se você está lutando contra tempos de carregamento lentos ou precisa de mais controle sobre a experiência do seu painel, nós podemos ajudar você a extrair todo o poder do Enigma.js e do Qlik Engine.
Vamos conversar!

