Saltar al contenido

Variables globales en Javascript en múltiples archivos

Hola usuario de nuestro sitio web, descubrimos la solución a tu interrogante, deslízate y la verás aquí.

Solución:

Debe declarar la variable antes de incluir el archivo helpers.js. Simplemente cree una etiqueta de secuencia de comandos encima de la inclusión para helpers.js y defínala allí.


     
... 

La variable se puede declarar en el .js y simplemente referenciado en el archivo HTML. mi versión de helpers.js:

var myFunctionWasCalled = false;

function doFoo()

    if (!myFunctionWasCalled) 
        alert("doFoo called for the very first time!");
        myFunctionWasCalled = true;
    
    else 
        alert("doFoo called again");
    

Y una página para probarlo:



Test Page







myFunctionWasCalled is

Some stuff in between

myFunctionWasCalled is

Verás la prueba alert() mostrará dos cosas diferentes, y el valor escrito en la página será diferente la segunda vez.

OK, chicos, aquí está mi pequeña prueba también. Tuve un problema similar, así que decidí probar 3 situaciones:

  1. Un archivo HTML, un archivo JS externo … ¿funciona en absoluto? ¿Pueden las funciones comunicarse a través de una var global?
  2. Dos archivos HTML, un archivo JS externo, un navegador, dos pestañas: ¿interferirán a través de la var global?
  3. Un archivo HTML, abierto por 2 navegadores, ¿funcionará e interferirán?

Todos los resultados fueron los esperados.

  1. Funciona. Las funciones f1() y f2() se comunican a través de var global (var está en el archivo JS externo, no en el archivo HTML).
  2. Ellos no interfieren. Aparentemente, se han realizado copias distintas del archivo JS para cada pestaña del navegador, cada página HTML.
  3. Todo funciona de forma independiente, como se esperaba.

En lugar de buscar tutoriales, me resultó más fácil probarlo, así que lo hice. Mi conclusión: cada vez que incluye un archivo JS externo en su página HTML, el contenido del JS externo se “copia/pega” en su página HTML antes de que se represente la página. O en su página PHP si lo desea. Corrígeme si me equivoco aquí. Gracias.

Mis archivos de ejemplo siguen:

JS EXTERNO:

var global = 0;

function f1()

    alert('fired: f1');
    global = 1;
    alert('global changed to 1');


function f2()

    alert('fired f2');
    alert('value of global: '+global);

HTML 1:






External JS Globals - index.php





HTML 2






External JS Globals - index2.php





Calificaciones y reseñas

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 3.5)



Utiliza Nuestro Buscador

Deja una respuesta

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