Hace unos días que Google ha anunciado una mejora de velocidad en el botón de Google Plus One. ¿Pero realmente estos códigos aumentan la velocidad?
Cuando hice el plugin para WordPress del Social Share Button hice algunos cambios en el código que te daban anteriormente por defecto. Y es que con la llegada de HTML5 se ha introducido un elemento en los scripts, el async que funciona en todos los navegadores desde hace algunas versiones.
Es curioso que Google esté apostando por dejar de dar soporte a varios navegadores (principalmente Explorer 7 para abajo, de Firefox 3.5 para abajo y versiones ya algo antiguas de Chrome y Opera). Sin duda Opera es el mejor navegador en cuanto a soporte de HTML5, por detrás pondría Chrome y Firefox y finalmente Explorer…
Ahora mi pregunta es… ¿realmente es necesario poner un código tal que así?
<script type="text/javascript"> (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })(); </script>
¿O es mejor ya directamente dar soporte a algo tal que así?
<script async type="text/javascript" src="http://apis.google.com/js/plusone.js"></script>
En ambos casos el sistema funciona «igual» de rápido, y pongo el igual entre comillas porque en una versión actualizada de los navegadores el segundo código funciona más rápido ya que no ha de ejecutar la función, algo que consume recursos.
El dilema está servido… por un lado hay que ir dejando de dar soporte a los navegadores antiguos (algo que llevo haciendo desde hace muchos años) y por otro los que deberían presionar para que esto ocurra siguen haciendo cosas extrañas según les parece.
Esto me lleva a pensar en el código de Google Analytics que también, decenas de veces he intentado optimizar… La situación es similar: ¿dejamos el código que nos ofrecen ellos, o ponemos el que realmente deberíamos poner?
<script type="text/javascript"> (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = 'http://www.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>
Lo podemos enfrentar tranquilamente a algo más simple como:
<script async type="text/javascript" src="http://www.google-analytics.com/ga.js"></script>
Personalmente creo que voy a empezar a aplicar ya la segunda opción en la mayoría de los proyectos, al menos en los que estoy seguro de que el segundo código va a funcionar (que van a ser todos los proyectos, con excepción de alguno concreto)… Y es que desde hace ya bastante tiempo sigo la norma básica que me va a hacer ganar dinero: quien tiene un Explorer 6 no ve Youtube y todavía menos va a pagar dinero en mi sitio para comprar algún producto.
Deja una respuesta