Olá,
Eu descobri um bug em que, se você carregar uma página rolada até a metade (vs no topo), o Node dá um erro de "TypeError: não é possível ler a propriedade 'toLowerCase' de indefinido". Isso não parece interromper o plug-in, pois ele continua com o carregamento lento, no entanto, o novo evento de saída onLoad parece não disparar corretamente até que você role de volta para o topo novamente.
Como recriar: carregue sua página de teste normalmente, na parte superior. Role para baixo até que você esteja na metade do caminho. Agora atualize a página e comece a rolar a partir do meio. Você deve ver um erro de nó. Caso contrário, certifique-se de utilizar o evento de saída onLoad. Se você rolar até o topo, verá o evento onLoad começar a funcionar repentinamente.
Oi,
Não consigo reproduzir isto: /
Quando você diz "Carregue sua página de teste normalmente". Você quer dizer esta página: https://tjoskar.github.io/ng-lazyload-image ou você executa a página localmente com npm start
?
Qual navegador você está usando?
Por algum motivo, no github.io, não consigo atualizar a página depois de carregá-la uma vez. Diz 404 não encontrado sempre :(
Mas, em geral, quero dizer localmente com qualquer projeto - estou usando Angular 4 com Universal e Node (então universal pode ter algo a ver com isso). Usando o Chrome 59 para Windows 10. Acho que isso pode ser um bug com a nova funcionalidade onLoad, mas não é positivo. O erro só aparece no console do Node, não parece que nenhum erro apareça no console do Chrome.
Olá @elitenick ,
Você pode fornecer um rastreamento de pilha completo de erro?
@tjoskar
Acho que esse erro está relacionado com https://github.com/tjoskar/ng-lazyload-image/blob/master/src/lazyload-image.ts#L75 , antes aqui pegarei o erro, mas já não está.
No Angular Universal aqui https://github.com/tjoskar/ng-lazyload-image/blob/master/src/lazyload-image.ts#L47 produzindo erro, porque element
no servidor não está definido.
Eu acho que uma boa solução para o problema é desabilitar o img preguiçoso no lado do servidor.
Por algum motivo, no github.io, não consigo atualizar a página depois de carregá-la uma vez. Diz 404 não encontrado sempre :(
Sim, isso é porque o github não oferece suporte para redirecionar todas as solicitações para index.html (mas esse é um problema completamente diferente)
Provavelmente tem algo a ver com o Angular Universal, mas há algumas coisas que não entendo:
element
não pode ser indefinido porque estamos acessando nodeName
de element
sem erros e, além disso, estamos usando element
em isVisible () e estamos até usando window
nessa função, que deve ser indefinida em um contexto de servidor.Acho que isso pode ser um bug com a nova funcionalidade onLoad, mas não é positivo
Você está usando (onLoad)
? Você pode tentar removê-lo e ver se consegue reproduzir o erro?
@rimlin
Eu acho que uma boa solução para o problema é desabilitar o img preguiçoso no lado do servidor.
Sim, não faz sentido carregar imagens lentamente no servidor (já que não sabemos nada sobre o tamanho da tela).
Talvez possamos apenas adicionar if (isPlatformServer(this.platformId)) return;
( ref ) em ngAfterContentInit
.
@elitenick , acabei de publicar [email protected]
com @rimlin pull request. Você pode instalá-lo ( npm install [email protected]
) e ver se ele resolve o problema?
Com certeza! Vou verificar hoje e avisar! Obrigado rapazes.
Está consertado! Muito obrigado !! Recriei meu mesmo cenário várias vezes e sem mais erros do Node. E o carregamento lento continua a funcionar assim que o Angular entrar em ação.
Incluído em [email protected]
.
Comentários muito úteis
https://github.com/tjoskar/ng-lazyload-image/pull/179