Introdução
Apesar do crescente poder de processamento dos dispositivos atuais, o desempenho e eficiência dos portais Web têm de ser tidos em conta no paradigma atual, pois são executados, não apenas em computadores de secretária, mas também em dispositivos móveis, alimentados por baterias. Adicionalmente, os utilizadores cada vez mais esperam das soluções Web desempenho equiparável ao de soluções nativas.
Melhoria de Desempenho
As páginas Web são compostas por diversos elementos, que vão de formatos expostos visualmente como imagens e textos, a ficheiros complementares invisíveis ao utilizador (bibliotecas de software, ficheiros CSS, etc.). Ao se navegar por um portal, é muito frequente uma página Web necessitar de recursos já previamente obtidos para a página anterior – pensemos no logótipo do portal, por exemplo. Acontece que, este tipo de recurso é frequentemente requisitado pelo portal múltiplas vezes sucessivas. É fácil identificar as consequências deste tipo de comportamento: aumento da carga sobre os servidores (diretamente proporcional ao seu custo de manutenção), do tempo de carregamento das páginas, do consumo de recursos de rede, consumo de energia, etc.
Felizmente, estas situações são evitáveis com recurso a um Service Worker (SW). Trata-se de um pequeno programa, executado pelo browser em paralelo com o portal, que funciona como uma camada entre este e a Web. Conhecendo os recursos que o portal pede e obtém do servidor, o SW permite a criação de caches locais para melhorar desempenho e eficiência, ou até mesmo implementar utilização offline. Para endereçar o problema em análise, pode-se:
- Constituir uma lista de URLs de recursos utilizados por várias páginas, que são imediatamente armazenados em cache ou
- Definir regras para armazenar em cache determinado tipo de recursos após serem obtidos uma única vez (por exemplo: armazenar todos os vídeos).
Posteriormente, quando necessários, o SW serve-os ao portal, evitando pedidos repetidos. Note-se que estes devem ser recursos com baixa taxa de modificação prevista - tais como logótipos e ficheiros de estilo.
Conclusão
Esta solução, não sendo de implementação morosa, pode facilmente ser empregue em diversos portais com poucas modificações de código. É, portanto, uma ferramenta a ter em conta no desenvolvimento das melhores soluções Web. Esta é uma das formas em que a atenção ao detalhe contribui para a criação de melhor software.