Em primeiro lugar, obrigado por criar uma ferramenta tão incrível! Next.js me parece uma "estrutura dos sonhos" para a construção de aplicativos da web, que "nos traz o melhor dos dois mundos" (aplicativo de página única e renderização do lado do servidor).
Para mim, a peça mais importante que ajuda Next.js a cumprir sua promessa é a capacidade de pré-buscar todos os componentes que o tags apontam para em uma página.
De acordo com a documentação, esse recurso é implementado usando o Service Worker, uma API que oferece suporte apenas para Chrome e Firefox. Isso significa que uma grande parte dos usuários da web simplesmente não consegue tirar proveito desse ótimo recurso. Não sei se perdi alguma coisa.
Podemos implementar a pré-busca usando outros tipos de técnicas, que oferecem suporte a todos os navegadores modernos, em vez de usar o Service Worker?
Isso significa que uma grande parte dos usuários da web simplesmente não consegue tirar proveito desse ótimo recurso
Isso é meio falso. Consulte: http://caniuse.com/#feat = serviceworkers
Os navegadores estão indo nessa direção e serão atualizados em breve.
De qualquer forma, nosso foco atual é enviar 2.0 e a solução de pré-busca atual é bem legal para isso.
Se alguém pudesse trabalhar nessa sugestão, acho que não temos razão para dizer não.
(E é totalmente possível fazer isso no userland também)
Anotei aqui algumas idéias para ampliar o suporte, nomeadamente usando AppCache: https://github.com/zeit/next.js/issues/24#issuecomment -258804529
Um princípio que nos serviu bem ao longo dos anos é fornecer _suporte_ para todos os navegadores, mas _otimizações_ para os modernos.
A pré-busca é uma otimização. Investir mais e mais código em uma otimização que será descontinuada (já que todos os agentes de usuário modernos oferecem suporte a ServiceWorker
ou planejam fazê-lo) não parece uma boa área de foco.
Se desejar, sinta-se à vontade para criar seu próprio módulo de pré-busca de userland que expõe a mesma API de next/prefetch
. O legal é: se você não usar next/prefetch
, ele não entrará na construção. Sem inchaço :)
Comentários muito úteis
Um princípio que nos serviu bem ao longo dos anos é fornecer _suporte_ para todos os navegadores, mas _otimizações_ para os modernos.
A pré-busca é uma otimização. Investir mais e mais código em uma otimização que será descontinuada (já que todos os agentes de usuário modernos oferecem suporte a
ServiceWorker
ou planejam fazê-lo) não parece uma boa área de foco.Se desejar, sinta-se à vontade para criar seu próprio módulo de pré-busca de userland que expõe a mesma API de
next/prefetch
. O legal é: se você não usarnext/prefetch
, ele não entrará na construção. Sem inchaço :)