Actualización temporizada del archivo Javascript sin recargar la página

Tengo un archivo javascript que se llama en las etiquetas principales de mi documento, y cada 30 segundos, quiero que este archivo javascript se vuelva a cargar.

Investigué un poco sobre esto, y parece que hay problemas con la extracción de una copia almacenada localmente del archivo, o problemas con navegadores cruzados...

Extraerlo del caché no es un problema, ya que el archivo real no está cambiando, solo necesita recargarse.

¿Sería esta una tarea de ajax? ¿Cómo haría para hacer esto?

Gracias de antemano.

preguntado el 12 de junio de 12 a las 21:06

La pregunta no es lo suficientemente clara. -

¿Qué más información quieres? -

Tengo curiosidad, si el contenido no cambia, ¿por qué es necesario volver a cargar el archivo? -

Se utiliza para generar anuncios, por lo que hay información computada allí, y es mucho más fácil recargarlo en lugar de intentar desglosarlo para incrustar las partes necesarias. -

@MrD. Motivación... ¿por qué necesitas recargarla? ¿No puedes usar el "viejo"? -

3 Respuestas

function foo(){
    $.getScript( url, function(script, textStatus, jqXHR){
        script...
    });
}

setInterval(foo, 30000);

Respuestas en caché

Por defecto, $.getScript() establece la configuración de caché en falso. Esto agrega un parámetro de consulta con marca de tiempo a la URL de solicitud para garantizar que el navegador descargue el script cada vez que se solicita.

Respondido el 12 de junio de 12 a las 21:06

Lo siento, acabo de mirar la documentación y dice que los parámetros son: url,success(response,status) con el éxito siendo opcional, ¿eso significa que si acabo de llamar a $.getScript(myscript.js) dentro la función y luego hacer el resto como dijiste que debería funcionar? - 1321941

Convierta las partes relevantes de su archivo JS en una función, en lugar de un código ejecutado inmediatamente, y luego use setInterval para llamarlo una vez cada 30 segundos.

var myFunction = function()
{
    // do your thang
}

myFunction();

setInterval(myFunction, 30000);

Respondido el 12 de junio de 12 a las 21:06

Creo que está sugiriendo tomar las partes que deberán actualizarse e incrustarlas en una función. normalmente eso funcionaría, pero en el caso es más fácil recargarlo todo. Por favor corrígeme si tengo el extremo equivocado del palo. - 1321941

Eso es exactamente lo que estoy sugiriendo. - ryan kinal

Desafortunadamente, no puedo incrustar ciertas partes. - 1321941

Estoy un poco confundido en cuanto a por qué está usando el término "incrustar". ¿Puedes explicar qué quiere decir incrustar? - ryan kinal

Lo siento, leí completamente mal esto, ¿quieres decir que puse el código anterior dentro del archivo javascript? - 1321941

Obtener un identificador DOM para el <script> etiqueta, luego establezca su src atributo (Potencialmente a algo como blah.js?nocache=somethingrandom)

Advertencia emperador: esto no ejecutará lo que está EN el archivo de una manera segura entre navegadores.

Respondido el 12 de junio de 12 a las 21:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.