Foros del Web » Programando para Internet » Javascript »

Ejecutar una url en 2º plano

Estas en el tema de Ejecutar una url en 2º plano en el foro de Javascript en Foros del Web. Saludos. Tengo una aplicación, en Lotus Domino, que tiene una serie de elemento de diseño, entre los cuales hay uno, denominado "Agentes". Bien, estos agentes ...
  #1 (permalink)  
Antiguo 11/05/2009, 00:43
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Ejecutar una url en 2º plano

Saludos.
Tengo una aplicación, en Lotus Domino, que tiene una serie de elemento de diseño, entre los cuales hay uno, denominado "Agentes".
Bien, estos agentes son rutinias que se ejecutan al ser invocados.
Esta llamada puede hacerse, en aplicaciones web, mediante llamadas a urls.

Mi problema es el siguiente...

Tengo un botón que opera sobre un documento en pantalla (html), el cual cambia valores del formulario y hace un submit del documento para guardarlo en la base de datos. Bien .... necesito invocar a ese "agente" durante la ejecución del código. Sería llamaer a una url, digamos en 2º plano ... y seguri ejecutando el código del botón?

¿Cómo uedo hacerlo?

Código del botón ...

Código HTML:
if(confirm('¿Seguro que desea ARCHIVAR la solicitud actual?')){
	f.Estado.value = 50;
	f.EstadoTxt.value =  'Archivada';

        //Aqui debería ir la llamada a la url

	f.submit();

        //o aquí

	window.close();
}
Gracia por anticipado.
  #2 (permalink)  
Antiguo 12/05/2009, 03:22
Avatar de anlhp  
Fecha de Ingreso: agosto-2008
Mensajes: 121
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Ejecutar una url en 2º plano

no se que es Lotus Domino y no entiendo muy bien lo que quieres decir, pero para llamar a una url antes de enviar el formulario (si la url pertenece al mismo dominio de tu sitio) puedes utilizar al objeto XMLHttpRequest en modo sincronico, es decir, el llamara a usa url y esperara su respuesta antes de seguir con la linea de codigo siguiente
  #3 (permalink)  
Antiguo 12/05/2009, 03:27
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Ejecutar una url en 2º plano

Más o menos me podria servir .. ¿podrías ponerme algún ejemplo?
  #4 (permalink)  
Antiguo 12/05/2009, 03:38
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Ejecutar una url en 2º plano

No tiene que ser antes del submit .. podria ser despues. POr lo que veo .. esa funcion necesita AJAX o algo así ¿no? ... Tiene que ser javascript "puro y duro"
Gracias
  #5 (permalink)  
Antiguo 12/05/2009, 03:47
Avatar de anlhp  
Fecha de Ingreso: agosto-2008
Mensajes: 121
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Ejecutar una url en 2º plano

ajax es el acronimo de javascript y xml asincronico, lo del xml tiene su historia porque en realidad se lo pusieron para poder incluirlo en con el lanzamiento de internet explorer, en fin, larga historia, pero ajax es javascript puro, solo que utilizando el objeto XMLHttpRequest que lo da el entorno anfitrion(el navegador) dame un momento para mostrarte un ejemplo
  #6 (permalink)  
Antiguo 12/05/2009, 04:49
Avatar de anlhp  
Fecha de Ingreso: agosto-2008
Mensajes: 121
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Ejecutar una url en 2º plano

mira, aqui un ejemplo, si no entiendes algo me lo dices para explicar mejor, y otra cosa, he utilizado el framework jquery tan solo para ahorrarme el trabajo de localizar el formulario en el DOM y evitarme tambien el evento window.onload o algo de eso que me avisa cuando esta contruido todo el arbol del DOM para poder localizar sus elementos

en mi carpeta del servidor tengo dos archivos
1- ajax.php
2- script.php

script.php
Código PHP:
echo 'Ajax works fine'
eso es todo, ahora

ajax.php
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
	<meta name="Content-Type" value=" text/html;charset=utf-8" />
	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
	<script type="text/javascript">
	function Ajax(){
		this.xhr = (function(){
					var tmp = new XMLHttpRequest();
					return tmp;
					})();
		this.dorequest = function(url){
							this.xhr.open('get', url, false);
							this.xhr.send(null);
						};
	};
	$(document).ready(function(){
		var ajax = new Ajax();
		ajax.dorequest('script.php');
		alert(ajax.xhr.responseText);
		$('#some_form').submit();
	});
</script>
</head>

<body>
<form id="some_form" method="post" action="script.php">
	<input type="text" name="text" value="" />
	<br>
	<input type="button" name="button" value="submit" />
</form>
</body>
</html> 
lo anterior me mostrara primero un alert diciendome la respuesta de script.php, es decir, un alert diciendome "Ajax works fine", y luego envia el formulario, lo que nos lleva a una pagina que dice: "Ajax works fine" y que es la pagina de script.php

dos cosas, lo correcto al trabajar con XMLHttpRequest es hacer estas cosas de enviar el formulario y tal, desde el manejador de eventos [XMLHttpRequest].onreadystatechange pero no se que ostias pasa que ahora esto no me funciona, asi que te lo deje fuera en el codigo
asi que queda:
1.crear mi obejto 'global' de la aplicacion web que tiene una propiedad xhr que es un objeto XMLHttpRequest y que me sirve para hacer llamadas sincronicas o asincronicas a archivos del servidor sin recargar la pagina
2.dicho objeto tiene un metodo dorequest() que recibe la url (ojo, tiene que ser del mismo dominio que la pagina desde la que haces el llamado) y que espera la respuesta que enviara el hecho de llamar a esa url, una cosa, dentro de este metodo, cuando veas this.xhr.open('get', url, false) esto quiere decir que, hacemos una solicitud tipo get a la url y que la haremos de forma sincronica (el tercer parametro que es false) de esta forma el script espera la respuesta antes de seguir a la siguiente instruccion
3.alertamos la respuesta del objeto XMLHttpRequest
4.enviamos automaticamente el formulario

espero que te sirva
  #7 (permalink)  
Antiguo 12/05/2009, 04:51
 
Fecha de Ingreso: agosto-2003
Mensajes: 324
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Ejecutar una url en 2º plano

lo probaré .., mi sistema no usa php, pero intentaré adaptarlo al mío ...
Gracias
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 14:00.