[Office 365] Tip para refrescar referencias a fichero JavaScript

En estas últimas semanas hemos estado algo atareados en la implementación de una Intranet en Office 365, y debido a que en algunos aspectos estamos bastantes acostumbrados a trabajar Onpremise pasamos por alto diversas utilidades que nos hacen mucho más rápido nuestro trabajo (bueno más bien que no nos hacen perder tiempo). 

Problema

Añadimos unas referencias JavaScript a una página haciendo uso del WebPart de Inserción de HTML y la primera vez que lo llamamos funciona perfectamente. Ahora bien hacemos cualquier modificación en el fichero «JS» y ese cambio no se veía reflejado. Incluso eliminando el fichero el aplicativo seguía funcionando.

¿Qué?

Las primeras veces, pensamos que el entorno en la nube se había rallado o funcionaba mal, y nuestro primer pensamiento es cierro y abro el navegador y problema resuelto. Algunas veces esto funcionaba pero la gran mayoría no. Entonces claro siempre esta la gracia/broma de turno vamos a hacer un IIS jejej Si espera que vamos al DataCenter este que esta en la vuelta de la esquina y lo reiniciamos jejje Partiendo de esta base nos vamos a un entorno OnPremise e intentamos repetir el mismo procedimiento. y observamos que su funcionamiento es el mismo que el que esta ocurriendo en Office 365. Claro aquí reiniciamos el IIS y acto seguido funciona (pero si sumamos el tiempo de que se levante SharePoint, tengamos otra vez listo el entorno y continuemos el hilo por donde lo habiamos dejado pues se nos puede ir 15 minutos fácilmente, si le sumamos que estamos desarrollando en JavaScript y que cuando subimos el JavaScript al no ser un lenguaje que el editor nos lo valide al instante como en .Net es más que posible que tengamos algún fallo tonto. Con lo cual es un infierno 

¿Porque este funcionamiento?

Lo que esta ocurriendo, como habeís podido deducir es que estamos teniendo un problema con la cache (pero no la cache del navegador) sino la cache del propio SharePoint y que si tu me has pedido un fichero y este fichero lo tengo en mi cache pues no hace falta que lo vuelva a consultar a la Base de Datos y te lo envió yo directamente. Este funcionamiento es lo normal por mucho que a nosotros ahora nos este molestando.

¿Como solucionarlo?

Como todo problema o casi todo problema tiene solución, y cual es su solución pues con dos letras se soluciona este problema si a la referencia JavaScript le añadimos el número de versión a nuestra petición y este número lo incrementamos cada vez que realizamos una petición. Lo que estamos haciendo a que como no coincide la versión con la que tiene cacheada el IIS pues la vuelve a  consultar y nos vuelve a enviar el fichero con los cambios realizados. Para ello basta con añadir la siguiente referencia:

<script type=»text/javascript» src=»../Documents/js/job.js?v=84″></script>

Desde aquí darle las gracias a mi compañero Miguel Alberto que dado su perfeccionamiento y buen hacer encontró la solución a este «problema». y nos hizo la vida un poco más sencilla en este proyecto.

Os adjunto una pantalla de la solución que hemos implementado, mucho HTML5, consumo de la API Rest y una interfaz gráfica espectacular, en la que funciona el drag and drop, y conseguimos subir elementos a una biblioteca de SharePoint de una manera muy sencilla (tal y como explique en este post

 


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *