Giter VIP home page Giter VIP logo

vtex-lazyloading's Introduction

VTEX Lazy Loading

Eu reuni neste repositório um conjunto de soluções que implementei em uma loja Vtex, para resolver um grande problema de carregamento. O problema é que todas as imagens são carregadas ao mesmo tempo, a plataforma não da a opção de carregamento sob demanda!

Antes de tudo é importante dizer que usaremos um pollyfill. Pois o "IntersectionObserver" ainda não oferece suporte para todos os navegadores.

Iniciando o projeto

No template da prateleira/vitrine (Shelves Templates) devemos adicionar um "wraper" para receberr a imagem original. Na primeira linha de HTML da prateleira adicionei o código desta forma (mudando os nomes das variáveis se necessário)

	<div class="noscript">
		<noscript psku="$sku">
			# $product.GetImageTag(221)
		</noscript>
	</div>
  • A div com a classe "noscript" foi necessária para resolver um problema de comátibilidade no navegador Edge
  • A tag renderiza seu contéudo apenas se o javascript estiver desativado. Funcionando como alternativa se algum navegador estiver com o javascript desabilitado. Neste caso, o código do "lazy load" não será executado.
  • O "#" dentro do noscript foi inserido propositalmente para quebrar o html, a imagem estava sendo carregada no DOM. No navegador Google Chrome

Na primeira DIV que envolve o produto eu adicionei a classe "_lazy", desta forma:

A imagem base do produto deve receber o caminho do fallback (no meu caso .gif), desta forma:

Adicionando os scripts

Precisamos "chamar" os dois scripts. O pollyfill deve ser carregado antes do "vtexlazyload.js".

vtex-lazyloading's People

Contributors

ehurafa avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.