Foros del Web » Programando para Internet » Javascript »

Variable global

Estas en el tema de Variable global en el foro de Javascript en Foros del Web. Hola, quizás sea una pregunta muy tonta pero... es posible acceder a una variable global desde varios ficheros de código js? Tengo un descriptor de ...
  #1 (permalink)  
Antiguo 11/06/2012, 07:17
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 14 años, 3 meses
Puntos: 2
Pregunta Variable global

Hola,

quizás sea una pregunta muy tonta pero... es posible acceder a una variable global desde varios ficheros de código js?

Tengo un descriptor de un websocket que creo en una fichero (esta declarada la variable fuera de cualquier función).

Si quiero utilizar dicho descriptor desde cualquier otro fichero para mandar un dato, ¿como podría hacerlo? Igual es demasiado evidente, pero no consigo que funcione.

Aquí mi código:

Código:
var Server;
	
function setWebSocket()
{
	alert('Connecting...');
	Server = new FancyWebSocket('ws://127.0.0.1:9300');

	//Let the user know we're connected
	Server.bind('open', function() {
		alert( "Connected." );
		$.ajax(
			{
				url: 'index.php?r=site/getUserId',
				type: 'POST',
				async: true,
				success: 
					function (response)
					{	
						// Mandar el id, para que el socket servidor sepa a que usuario pertenece
						var data = { msg_type: "connect",
									 id: response };
						Server.send('message', JSON.stringify(data));	
					},
				error:
					function (response)
					{	
						new Messages().addMsg("Ocurrió un error estableciendo la conexión. Las actualizaciones asíncronas no funcionarán");
					}
			}
		);
	});

	//OH NOES! Disconnection occurred.
	Server.bind('close', function( data ) {
		alert( "Disconnected." );
	});

	//Log any messages sent from server
	Server.bind('message', function( payload ) {
		alert( payload );
	});

	Server.connect();
}

// Llamando a esta funcion de aqui abajo no funciona , a no ser que ponga un alert en medio (rarisimo)
function actualizar(data)
{
	msg = JSON.stringify(data);
	alert(Server);
	Server.send('message', msg);	
}
Necesito hacer un Server.send en otros ficheros, o mediante una función similar a la que he llamado "actualizar", pero que funcione.... :S

Gracias!
  #2 (permalink)  
Antiguo 11/06/2012, 07:55
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: Variable global

Nop, pero te doy un consejo utiliza clases si quieres tener acceso global en dicho archivo a dichas variables.

una variable this.mivariable es accedible en todo ese documento.
  #3 (permalink)  
Antiguo 11/06/2012, 08:19
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Variable global

Ya, es que si utilizo clases, necesitaria pasar el ejemplar de esa clase a todos los lados donde quiera usarlo, asi se solucionaría, pero me obliga a hacer un monton de pasos de variables :S

Gracias! :)
  #4 (permalink)  
Antiguo 11/06/2012, 09:21
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Variable global

Lo he metido en una función, y he creado un método para llamarlo una vez tienes el objeto, para enviar datos al servidor; pero... solo funciona si le pongo un alert por delante y otro por detras al envio del mensaje :S

(El socket me hace un echo, y cuando llamoa a esta función no hace el echo, a no ser que pongan dos alert, algo rarisimo)

Sabeis que puede estar pasando? Gracias

Código:
	function send(data)
	{
		/alert("");
		msg = JSON.stringify(data);
		Server.send('message', msg);
		/alert("");		
	}

Etiquetas: ajax, funcion, global, js, php, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:17.