Al hacer el desarrollo en un archivo .js me gustaría simplemente actualizar el archivo en lugar de la página completa para ahorrar tiempo. Alguien sabe de alguna técnica para esto?¿Hay alguna manera de actualizar solo el javascript include mientras se desarrolla?
Respuesta
Aquí es una función para crear un nuevo elemento de script. Añade un número entero incrementado para hacer que la URL del guión sea única (como sugirió Kon) para forzar una descarga.
var index = 0; function refreshScript (src) { var scriptElement = document.createElement('script'); scriptElement.type = 'text/javascript'; scriptElement.src = src + '?' + index++; document.getElementsByTagName('head')[0].appendChild(scriptElement); }
Luego, en la consola de Firebug, se le puede llamar como:
refreshScript('my_script.js');
Tendrá que asegurarse de que el índice en sí no es parte de la secuencia de comandos se vuelve a cargar!
El panel Firebug Net le ayudará a ver si el script se está descargando. El estado de la respuesta debe ser "200 OK" y no "304 No modificado. Además, debe ver el índice anexado en la cadena de consulta.
El panel HTML de Firebug lo ayudará a ver si el elemento script se agregó al encabezado . elemento
ACTUALIZACIÓN:
Aquí está una versión que utiliza una marca de tiempo en lugar de una variable índice Como sugiere @davyM, es un enfoque más flexible:.
function refreshScript (src) { var scriptElement = document.createElement('script'); scriptElement.type = 'text/javascript'; scriptElement.src = src + '?' + (new Date).getTime(); document.getElementsByTagName('head')[0].appendChild(scriptElement); }
puntos de Alexei también están bien -establecido.
Si está hablando del desafortunado caso de almacenamiento en caché del lado del cliente/navegador de su archivo .js, entonces simplemente puede versionar su archivo .js. Puede:
- Renombrar el archivo .js en sí (no preferido)
- actualización incluye la línea para hacer referencia yourfile.js 1, 2 yourfile.js, etc .. Por lo tanto forzando al navegador para solicitar el?? la última versión del servidor. (preferido)
No, no es una cuestión de caché. Deseo actualizar .js * sin * actualizar toda la página. Algo así como cómo puedes editar CSS rápidamente a través de Firebug sin tener que actualizar la página cada vez para probar tus resultados. No exactamente así, porque quiero guardar los cambios en el archivo .js, pero el punto es que no quiero actualizar toda la página. – Susan
Fuera de las prácticas de depuración estándar (por ejemplo, evaluación de expresiones, comprobación de valores, etc.) No sé cómo puedes hacer lo que intentas hacer. Lamentablemente, volver a cargar la página completa es tu mejor opción. – Kon
Lamentablemente, tiene que actualizar la página web para ver las ediciones de JavaScript. No hay forma de que sepa editar JavaScript en "tiempo real" y ver el efecto de las ediciones sin una actualización.
Puede usar Firebug para insertar nuevo JavaScript, y hacer cambios en tiempo real a los objetos DOM; pero no puedes editar el JavaScript que ya se ejecutó.
Sé que puede editar css y html a través de Firebug, pero no veo cómo se pueden editar los archivos .js? – Susan
haga clic en "Consola" y pegue su código js en el panel lateral derecho. –
@Susan Disculpa, esa fue una mala elección de palabras; lo que quise decir con eso es que podrías usar la pestaña Consola para escribir tu JS y que eso te muestre los cambios en tiempo real. Edité mi respuesta para ser más específico. – Moses
Le sugiero que utilice Firebug para este fin. Mira este video, me ayudó mucho.
http://encosia.com/2009/09/21/updated-see-how-i-used-firebug-to-learn-jquery/
No es ideal si estoy trabajando con ajustes en múltiples funciones en un archivo .js. – Susan
Si acaba harto de rellenar los formularios mientras que el desarrollo sólo tiene que utilizar la forma recuperar extensiones como éste https://addons.mozilla.org/ru/firefox/addon/lazarus-form-recovery/
- 1. ¿Hay alguna manera de obligar a WebView a actualizar su imagen (vista) mientras se desplaza?
- 2. ¿Hay alguna manera de instalar solo el cliente mysql (Linux)?
- 3. jQuery: ¿Hay alguna manera de "actualizar" los manejadores de eventos?
- 4. Rieles: ¿hay alguna forma de actualizar un solo atributo?
- 5. ¿Hay alguna manera de instalar solo ADB sin SDK completo?
- 6. En Visual Studio, ¿hay alguna manera de agrupar solo comentarios?
- 7. ¿Hay alguna manera de omitir el parámetro?
- 8. ¿Hay alguna manera de obligar a los navegadores a actualizar/descargar imágenes?
- 9. ¿Hay alguna manera de clasificar/ordenar claves en objetos JavaScript?
- 10. ¿Hay alguna manera de probar la referencia circular en JavaScript?
- 11. ¿Hay alguna manera de verificar que el código funcionará en el 360 mientras se realiza el desarrollo XNA?
- 12. ¿Hay alguna manera de crear y ejecutar javascript en Chrome?
- 13. ¿Hay alguna manera de leer la entrada estándar con JavaScript?
- 14. e.preventDefault - ¿hay alguna manera de hacerlo?
- 15. ¿Hay alguna manera de saber si su aplicación se está utilizando mientras el usuario está en el teléfono?
- 16. Declaración de cambio de Javascript: ¿Hay alguna manera de que dos casos ejecuten el mismo código?
- 17. ¿Hay alguna manera de forzar una actualización de solo un encabezado en UITableView?
- 18. ¿Hay alguna manera de cambiar la barra de direcciones del navegador sin actualizar la página?
- 19. ¿Hay alguna manera de llamar a Navigate desde el ViewModel?
- 20. ¿Hay alguna manera de desactivar una etiqueta?
- 21. En Javascript, ¿hay alguna manera de saber de qué script de host se cargó?
- 22. Actualizar NSMenuItem mientras se muestra el menú del host
- 23. ¿Hay alguna manera de "cambiar en caliente" el código JavaScript dentro del navegador?
- 24. ¿Hay alguna herramienta para actualizar Javadoc automáticamente?
- 25. ¿Hay alguna manera de eliminar el historial de un solo archivo en Mercurial?
- 26. ¿Hay alguna manera de eliminar el fondo gris de ImageButtons?
- 27. ¿Hay alguna manera de evitar recursiones innecesarias?
- 28. ¿Hay alguna manera de atrapar el evento del botón Atrás en JavaScript?
- 29. ¿Hay alguna manera de obtener el punto de inserción en un cuadro de texto de javascript?
- 30. ¿Hay alguna manera de anular ConfigurationManager.AppSettings?
usaría la hora (new Date(). GetTime()) en lugar de un índice (elimina la necesidad de una variable global). Si actualiza mucho el mismo script, incluso podría crear un bookmarklet. –
@davyM, buena idea. Voy a actualizar. – inkfist
+1. Tenga en cuenta que el script de recarga no actualizará el objeto Evry ya cargado. Puede encontrarse con problemas interesantes en los que se utilizan versiones antiguas de funciones (es decir, devoluciones de llamada/cierres/objetos existentes). –