Frameworks de AJAX no Google Code

Uma das maiores críticas à utilização de frameworks (aqui está uma buzzword de que até gosto) de Javascript - e, já agora, ao contrário do que o nome indica, as frameworks mencionadas são de JavaScript e não AJAX, pois fazem muito mais do que apenas AJAX - sempre foi o facto de os seus ficheiros serem distribuídos vezes e vezes sem conta, desperdiçando assim largura de banda e criando várias cópias do mesmo ficheiro na cache.

O meu site pode ser totalmente diferente do do meu vizinho, mas se ambos usarmos a mesma versão da Jquery, quem visitar os nossos dois sites vai estar a fazer o download dos mesmos ficheiros duas vezes.

O Google veio tentar ajudar, levando ao máximo algo que já era feito com a YUI (disponível na rede de distribuição de conteúdos da Yahoo), a Dojo (alojada pela AOL) e, de certo modo, até a Jquery e a Base do Dean Edwards, sendo que estas duas últimas utilizam links directos para os seus respectivos repositórios do Google Code.

O que o Google veio fazer foi basicamente oferecer um sítio central a partir do qual podemos usar todas estas libraries: AJAX Libraries API.

A ideia é que ao alojar os ficheiros nos servidores do Google, estes são servidos mais depressa pela rede distribuída do Google, são automaticamente “gzipados” para browsers que suportem compressão dos dados que recebem, e ainda se tem a garantia de que vão ser guardados em cache.

As frameworks disponíveis actualmente são as seguintes:

O mecanismo de cache é especialmente interessante e útil, dado que se de futuro muitos sites passarem a utilizar este serviço e o vosso browser passar por um deles, vai ficar com os ficheiros armazenados em cache no primeiro e não vai precisar de ir buscar novamente os mesmos ficheiros para os sites seguintes.

A utilização é muito simples e é possível de dois modos, com HTML simples ou através da API do Google. Por exemplo, para usar o Prototype:

HTML simples:

<script src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js"></script>

Google Ajax API:

<script src="http://www.google.com/jsapi"></script>
<script>
    google.load("prototype", "1");
    // ...
</script>

Se repararem, é possível especificar qual a versão do ficheiro que querem, com a vantagem de que o sistema de versões por trás disto é inteligente. Isto é, se especificarmos a versão 1.6.0.2, ele vai buscar precisamente essa versão. Mas se especificarmos apenas a versão 1, como no segundo exemplo, ele vai buscar a versão 1.9.1, que é actualmente a mais recente.

Outra vantagem é que estes ficheiros são servidos automaticamente como versões “minificadas” dos originais, poupando assim ainda mais largura de banda. É possível, no entanto, ir buscar versões normais dos mesmos. Por exemplo, para ir buscar a JQuery sem ser minificada:

<script src="http://www.google.com/jsapi"></script>
<script>
    google.load("jquery", "1.2", {uncompressed:true});
    // ...
</script>

Só vi instruções sobre como fazer isto utilizando a API do Google mas suponho que exista um modo de o fazer com HTML simples. Não faria muito sentido não ser possível.

O anúncio oficial foi feito ontem, aqui.

Be the first to know when I post cool stuff

Subscribe to get my latest posts by email.

powered by TinyLetter