Partials

Revolucionando o Desenvolvimento Web
06/10/2023Marcos Candeia, Tiago Gimenes

Fresh, o framework web utilizado pela Deco, é conhecido por possibilitar a criação de pÔginas de altíssimo desempenho. Uma das razões pelas quais as pÔginas criadas na Deco são tão eficientes é devido à arquitetura de ilhas. Essa arquitetura permite que os desenvolvedores removam partes não interativas do pacote final de JavaScript, reduzindo a quantidade total de JavaScript na pÔgina e aliviando o navegador para realizar outras tarefas.

No entanto, uma das limitações dessa arquitetura é que pÔginas muito complexas, com muita interatividade e, portanto, muitas ilhas, ainda exigem uma grande quantidade de JavaScript. Felizmente, essa limitação agora é coisa do passado, graças à introdução dos Partials.

Como Funciona?

Os Partials, inspirados no htmx, operam com um runtime que intercepta as interações do usuÔrio com elementos de botão, âncora e formulÔrio. Essas interações são enviadas para nosso servidor, que calcula o novo estado da pÔgina e responde ao navegador. O navegador recebe o novo estado da IU em HTML puro, que é então processado e as diferenças são aplicadas, alterando a pÔgina para o seu estado final. Para obter informações mais detalhadas sobre os Partials, consulte a documentação do Fresh.

Partials em Ação

Estamos migrando os componentes da loja da Deco para a nova solução de Partials. Até o momento, migramos o seletor de SKU, que pode ser visualizado em ação aqui. Mais mudanças, como infinite scroll e melhorias nos filtros, estão por vir.

Outra funcionalidade desbloqueada é a possibilidade de criar dobras na pÔgina. As pÔginas de comércio eletrÓnico geralmente são longas e contêm muitos elementos. Os navegadores costumam enfrentar problemas quando hÔ muitos elementos no HTML. Para lidar com isso, foi inventada a técnica de dobra.

A ideia bÔsica dessa técnica é dividir o conteúdo da pÔgina em duas partes: o conteúdo acima e o conteúdo abaixo da dobra. O conteúdo acima da dobra é carregado na primeira solicitação ao servidor. O conteúdo abaixo da dobra é carregado assim que a primeira solicitação é concluída. Esse tipo de funcionalidade costumava ser difícil de implementar em arquiteturas mais antigas. Felizmente, embutimos essa lógica em uma nova seção chamada Deferred. Esta seção aceita uma lista de seções como parâmetro que devem ter seu carregamento adiado para um momento posterior.

Para usar essa nova seção:

  1. Acesse o painel de administração da Deco e adicione a seção Rendering > Deferred à sua pÔgina.
  2. Mova as seções que deseja adiar para a seção Deferred.
  3. Salve e publique a pƔgina.
  4. Pronto! As seções agora estão adiadas sem a necessidade de alterar o código!

Veja Deferred em ação neste link.

Observe que, para a seção Deferred aparecer, você deve estar na versão mais recente do fresh, apps e deco!

Uma pergunta que você pode estar se fazendo agora é: Como escolher as seções que devo incluir no deferred? Para isso, use a aba de desempenho e comece pelas seções mais pesadas que oferecem o maior retorno!

Para mais informaƧƵes, veja nossas docs