Pregunta

He notado una solución que podría ayudarlo a controlar el almacenamiento en caché de archivos JavaScript .

Hay una esputilidad del método. makbrowsercachesafelayoutsurl . MSDN dice este método: < EM> devuelve una nueva URL que no se almacenará en caché por el navegador cuando el archivo asociado cambia .

suena increíble. He intentado usar este método así:

 <script type="text/jscript" src="<%=SPUtility.MakeBrowserCacheSafeLayoutsUrl("projectName/scripts/plugins/tapes_report_definition.js", false)%>" ></script>

Entonces, funcionó. GENERADO? REV= {MD5HASH_OF_MY_FILE.JS} Parte al final de la URL. Pero después de que cambié este archivo .js, New MD5 Hash no se generó. ? La parte de revoluciones se mantuvo igual. He intentado Iisreset, redistribuido, etc., pero nada ayudó. He comprobado este método con el reflector y he aprendido que MakeBrowsercachesafelayoutsurl no genera el hash MD5 todo el tiempo, sino que lo obtiene del objeto interno de Spvolitilecache.

Pensé que podría eliminar este caché eliminando todos los archivos dentro de estas dos carpetas:

  1. % appdata% \ Microsoft \ Web Server Extensions \ Cache
  2. % userprofile% \ appdata \ local \ microsoft \ websitecache

    Eliminación no ayudó. La computadora. MABILEBROWBROWSERCHESAFELAYOUTSURL aún devuelve el mismo valor después de cambiar el archivo Javascript.

    Tengo tres preguntas:

    1. ¿Cómo refresco Spvolitilecache después de todo?
    2. ¿Cómo forzar la esputilidad ?HakeBrowsercachesafelayoutsurl genera ¿Nuevo? Rev= sin purgando caché?
    3. Teniendo en cuenta todo lo anterior, ¿tiene sentido usar la esputilidad ?HakeBrowsercachesafelayoutsurl?

      ¡Cualquier información adicional será muy apreciada!

¿Fue útil?

Solución

Lo he revisado nuevamente y confirmo que este método es totalmente viable.La URL de un archivo se refresca después de IISRESET.Esto es exactamente lo que quería ver.

Otros consejos

Me gustaría agregar esto al igual que un comentario, pero StackExchange no permitirá eso. Por lo tanto, aquí está mi respuesta: para cualquier persona que busque resolver el problema de los elementos de script en caché dentro de una parte web del editor de contenido (o un jslink a un archivo .js), sepa que el método de Sputility.MakeBrowsercachesafeurl es un método de solo servidor y debe ser incrustado en una página de ASPX. Asegúrese de comprender que no puede simplemente plop el código en un archivo .js o la parte web del editor de contenido y tener la función. No lo hará.

Dicho esto, el método realmente es bastante inútil porque también podría usar la etiqueta ScriptLink. Scriptlink agregará el? Rev para ti. La única vez que podría tener la tentación de usar este método es si está incrustando las etiquetas de script en una página que nunca debe hacer. Eso va totalmente en contra de todo el marco de SOD y las mejores prácticas y es probable que no funcione con MDS.

La razón por la que encontré esta página fue porque tengo una parte web de Infopath Form en una página y el desarrollador anterior usó un archivo .js separado para hacer algunos botones. El archivo .js para los botones se hace referencia en una parte web del editor de contenido. Esto es probablemente un escenario común, pero es problemático porque la referencia del archivo no tiene un servicio de finalización a menos que se agregue manualmente. A menos que haya un método real del lado del cliente que ayude a generar algún tipo de revista, y no veo cómo podría haber, mi voto es que este método es inútil.

Licenciado bajo: CC-BY-SA con atribución
scroll top