JMiur [E]

El reproductor que nos ofrece YouTube tiene pocas posibilidades de personalización y algunas fallas importantes. Una de ellas es que mantiene cargados los videos una vez que se ejecutó play.

Esto, que en principio no parece demasiado importante, se hace fundamental cuando insertamos varios en una misma página. Supongamos que hay 10 videos, ejecutamos el primero, lo detenemos, ejecutamos el segundo, lo detenemos, ejecutamos el tercero ... la carga se demora un poco más, seguimos así y cada nuevo video que intentemos ejecutar tardará más y más y más. Llegará un momento en que, si queremos seguir mirándolos, deberemos refrescar la página manualmente.

La explicación, tal como cuentan en Blogoscoped es que, aún cuando los detengamos por completo, cada uno de ellos permanecerá cargado y la memoria se irá saturando. Por suerte, también muestran una solución que, si bien no es la ideal es muy interesante ya que nos abre una serie de posibilidades.

Lo único que necesitamos es un script cuyo código original puede verse en la página de referencia.

Como cualquier otro script, para utilizarlo en Blogger, lo alojamos en un servidor propio y luego lo insertamos en la plantilla, por ejemplo, inmediatamente antes de la etiqueta </head>.
<script src="URL_insertarYouTube.js" type="text/javascript"></script>
¿Y cómo lo usamos?

La idea es crear un bloque expandible "+ Mostrar video" similar a cualquier truco expandir/contraer pero no para que oculte el reproductor ya que esto no nos serviría porque, oculto o visible, el video continuaría cargado.

Ese bloque, estará vacío, digamos que, de alguna manera, reservamos espacio para el reproductor en si que sólo se insertará cuando expandamos el bloque. Ese bloque, lo controlamos con un simple enlace que puede ser, tanto un texto, como una imagen.

Una vez expandido, el script "escribirá" el código correspondiente, el video comenzará a cargarse y a reproducirse automáticamente ya que se le ha añadido la opción autoplay. El enlace puede ser un una imagen o un simple texto que cambiarán a "- Ocultar el video".

El punto importante es que, este segundo enlace, que también es controlado por el script, no sólo oculta el bloque sino que elimina su contenido por lo que la memoria quedará restaurada. De esta manera, a menos que tengamos expandidos varios reproductores, sólo uno de ellos permanecerá activo y, por lo tanto, sólo uno quedará cargado, haciendo que la página sea mucho más ágil para navegar.

La forma más sencilla de utilizar este script es insertar el siguiente código:
<div id="enlaceIDVideo1">
<a href="javascript:mostraVideo(1, 'ID_video_YouTube')">
+ Mostrar video
</a>
<br/> Un texto cualquiera
</div>

<div style="display:none;" id="bloqueIDVideo1"> </div>
donde ID_video_YouTube es la identificación del video que nos provee YouTube y que puede verse, incluso, en la barra de direcciones del navegador. Por ejemplo:
http://www.youtube.com/watch?v=bU4gXHkejMo
Hay que tener en cuenta que este dato debe ser colocado entre comillas simples.

1, es el número de orden del video insertado. Si quisiéramos insertar otro, utilizaríamos enlaceIDVideo2, 2 y bloqueIDVideo2 y así sucesivamente. En realidad, el número en si mismo carece de importancia siempre y cuando cada uno de los videos de la misma página tengan números diferentes. Ese número es una forma de identificar cada uno de los videos así que no podemos tener dos bloques que usen el mismo.

En este caso, el enlace es un texto (+ Mostrar video) pero, podríamos utilizar una imagen:
<img src="URL_imagen">

Por último, el script requiere una mínima adaptación que deberá hacer cada uno de acuerdo a sus gustos o necesidades. Para editarla, utilizamos el block de notas y allí veremos dos líneas:
//  var elVinculo = "- Ocultar video"
var elVinculo = "<img src=\"colapsarYT.png\">"
Por defecto, el script está preparado para utiliza como enlace, una imagen:
var elVinculo = "<img src=\"colapsarYT.png\">"
en este caso, basta cambiar colapsarYT.png por la URL de la imagen a utilizar.

Si quisiéramos utilizar un texto, bastaría cambiar esas sos líneas por algo semejante a esto:
var elVinculo = "- Ocultar video"
//  var elVinculo = "<img src=\"colapsarYT.png\">"

2 comentarios:

Jorge Chumacero Chávez  

Muy bueno, aún no lo pruebo, una pregunta... se podrá hacer también eso para imágenes? para que no se cargue todo en junto? osea que no se cargue nada luego del clásico "siga leyendo"

Responder
JMiur  

Sí, es posible. Tendría que pensar los detalles pero el principio, sería el mismo.

Responder

¿Quiere dejar un comentario?

recuerde que los comentarios están siendo moderados y serán publicados a la brevedad ...

Nota: sólo los miembros de este blog pueden publicar comentarios.

Si le gusta ir a lo seguro utilice este botón para abrir los comentarios en una ventana modal en esta misma pagina.

Si añora tiempos idos, use este enlace para agregar un comentario al viejo estilo ...

 
CERRAR