HighDots Forums  

asincronia di esecuzione codice

Javascript (Italian) Il linguaggio JavaScript (it.comp.lang.javascript)


Discuss asincronia di esecuzione codice in the Javascript (Italian) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Paolo
 
Posts: n/a

Default asincronia di esecuzione codice - 05-04-2006 , 05:31 AM






riciao

mi riallaccio al 3d di ieri "combo da ripopolare senza ricaricare la
pagina" perchè questa parte è risolta utilizzando ajax, ma ora ho ancora
un piccolo problemino:

scenario:
form con una combo con un elenco valori.
se un valore non è presente a fianco della combo c'è un pulsante che mi
apre una popup che mi permette di inserire le voci non presenti in una
tabella su db e in chiusura della pop up tramite ajax ricarico solo la
combo con i valori modificati.
la ricarica dei valori funziona ma non avviene alla chiusura della pop
up in quanto dopo l'apertura della pop up il codice js prosegue subito.

come faccio a bloccare l'esecuzione del codice aspettando che la pop up
venga chiusa tipo così:

apro_popup

quando la popup è chiusa
ricarica_valori_cambo (e questa funzione è ok)

mi stò perdendo con lo studio di window.opener e closed.... argh!!!!!

paolo


Reply With Quote
  #2  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: asincronia di esecuzione codice - 05-04-2006 , 05:35 AM






In data Thu, 04 May 2006 11:31:31 +0200, Paolo ha scritto:

Quote:
form con una combo con un elenco valori.
se un valore non è presente a fianco della combo c'è un pulsante che mi
apre una popup che mi permette di inserire le voci non presenti in una
tabella su db e in chiusura della pop up tramite ajax ricarico solo la
combo con i valori modificati.
la ricarica dei valori funziona ma non avviene alla chiusura della pop
up in quanto dopo l'apertura della pop up il codice js prosegue subito.
Stai sbagliando approccio.
con una function apri la popup, con un'altra function aggiorni i valori.
Poi dalla tua popup con un tasto scateni la function, del tipo
opener.tuafunctioncheaggiornaselect(); window.close();

--
"Affacciati affacciati benedici, guardaci
guardaci...guardaci!
Tanto sono quasi duemila anni che stai a guardare!"
E.B.


Reply With Quote
  #3  
Old   
Paolo
 
Posts: n/a

Default Re: asincronia di esecuzione codice - 05-04-2006 , 06:06 AM



Cristiano Larghi ha scritto:
Quote:
In data Thu, 04 May 2006 11:31:31 +0200, Paolo ha scritto:

form con una combo con un elenco valori.
se un valore non è presente a fianco della combo c'è un pulsante che mi
apre una popup che mi permette di inserire le voci non presenti in una
tabella su db e in chiusura della pop up tramite ajax ricarico solo la
combo con i valori modificati.
la ricarica dei valori funziona ma non avviene alla chiusura della pop
up in quanto dopo l'apertura della pop up il codice js prosegue subito.
Stai sbagliando approccio.
con una function apri la popup, con un'altra function aggiorni i valori.
Poi dalla tua popup con un tasto scateni la function, del tipo
opener.tuafunctioncheaggiornaselect(); window.close();

scusa, non capisco, forse non mi sono spiegato, posto un po' di codice:


function apri_pop_e_ricarica_select()
{
sList = window.open("tab3popup.asp", "list", "width=490,height=400");

// io tutto questo codice che segue che mi fa' il ricaricamento della
combo dovrei eseguirlo solo alla chiusura della pop up "tab3popup.asp"
oppure sbaglio?

var url="pag5.asp"
xmlHttp=GetXmlHttpObject(stateChanged)
xmlHttp.open("GET", url , true)
xmlHttp.send(null)
}

function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("DIV_SELECT_ID_GRAMMATURA" ).innerHTML=xmlHttp.responseText

}
}

function GetXmlHttpObject(handler)
{
var objXmlHttp=null

if (navigator.userAgent.indexOf("Opera")>=0)
{
alert("This example doesn't work in Opera")
return
}
if (navigator.userAgent.indexOf("MSIE")>=0)
{
var strName="Msxml2.XMLHTTP"
if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
{
strName="Microsoft.XMLHTTP"
}
try
{
objXmlHttp=new ActiveXObject(strName)
objXmlHttp.onreadystatechange=handler
return objXmlHttp
}
catch(e)
{
alert("Error. Scripting for ActiveX might be disabled")
return
}
}
if (navigator.userAgent.indexOf("Mozilla")>=0)
{
objXmlHttp=new XMLHttpRequest()
objXmlHttp.onload=handler
objXmlHttp.onerror=handler
return objXmlHttp
}
}



Reply With Quote
  #4  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: asincronia di esecuzione codice - 05-04-2006 , 06:22 AM



In data Thu, 04 May 2006 12:06:09 +0200, Paolo ha scritto:

Quote:
function apri_pop_e_ricarica_select()
{
sList = window.open("tab3popup.asp", "list", "width=490,height=400");

// io tutto questo codice che segue che mi fa' il ricaricamento della
combo dovrei eseguirlo solo alla chiusura della pop up "tab3popup.asp"
oppure sbaglio?
esatto ... ma non puoi attendere finché non chiudi la popup perché
javascript non è multithreading, devi per forza passare da un'altra
function.
Sposti quindi tutto quanto sotto in un'altra function e la richiami quando
chiudi la popup come ti ho scritto.

--
"Ti sei salvato
o sei entrato in banca pure tu?"
A.V.


Reply With Quote
  #5  
Old   
Paolo
 
Posts: n/a

Default Re: asincronia di esecuzione codice - 05-04-2006 , 08:38 AM



Cristiano Larghi ha scritto:
Quote:
In data Thu, 04 May 2006 12:06:09 +0200, Paolo ha scritto:

function apri_pop_e_ricarica_select()
{
sList = window.open("tab3popup.asp", "list", "width=490,height=400");

// io tutto questo codice che segue che mi fa' il ricaricamento della
combo dovrei eseguirlo solo alla chiusura della pop up "tab3popup.asp"
oppure sbaglio?
esatto ... ma non puoi attendere finché non chiudi la popup perché
javascript non è multithreading, devi per forza passare da un'altra
function.
Sposti quindi tutto quanto sotto in un'altra function e la richiami quando
chiudi la popup come ti ho scritto.

ok ho fatto così nel pulsante di chiusura della pop up richiamo con
"opener.ricarica_select(); window.close();", ma a questo punto non mi
funziona + la riscrittura della combo, e mi ritorna sulla form
originaria eliminandomi del tutto la combo ed il suo contenuto!



Reply With Quote
  #6  
Old   
Paolo
 
Posts: n/a

Default Re: asincronia di esecuzione codice - 05-04-2006 , 08:42 AM



Paolo ha scritto:
Quote:
Cristiano Larghi ha scritto:
In data Thu, 04 May 2006 12:06:09 +0200, Paolo ha scritto:

function apri_pop_e_ricarica_select()
{
sList = window.open("tab3popup.asp", "list", "width=490,height=400");

// io tutto questo codice che segue che mi fa' il ricaricamento della
combo dovrei eseguirlo solo alla chiusura della pop up
"tab3popup.asp" oppure sbaglio?
esatto ... ma non puoi attendere finché non chiudi la popup perché
javascript non è multithreading, devi per forza passare da un'altra
function. Sposti quindi tutto quanto sotto in un'altra function e la
richiami quando
chiudi la popup come ti ho scritto.


ok ho fatto così nel pulsante di chiusura della pop up richiamo con
"opener.ricarica_select(); window.close();", ma a questo punto non mi
funziona + la riscrittura della combo, e mi ritorna sulla form
originaria eliminandomi del tutto la combo ed il suo contenuto!


edit:
non funziona con firefox 1.5.03, con ie6 pare funzioni il tutto...



Reply With Quote
  #7  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: asincronia di esecuzione codice - 05-04-2006 , 08:48 AM



In data Thu, 04 May 2006 14:42:31 +0200, Paolo ha scritto:

Quote:
edit:
non funziona con firefox 1.5.03, con ie6 pare funzioni il tutto...
e che errore ti segnala la console?

--
"E' l' ignoranza che crea l'intolleranza
di gente cieca e senza coscienza"
S.S.S.


Reply With Quote
  #8  
Old   
Paolo
 
Posts: n/a

Default Re: asincronia di esecuzione codice - 05-04-2006 , 08:50 AM



Cristiano Larghi ha scritto:
Quote:
In data Thu, 04 May 2006 14:42:31 +0200, Paolo ha scritto:

edit:
non funziona con firefox 1.5.03, con ie6 pare funzioni il tutto...
e che errore ti segnala la console?

"opener has no properties"



Reply With Quote
  #9  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: asincronia di esecuzione codice - 05-04-2006 , 08:55 AM



In data Thu, 04 May 2006 14:50:47 +0200, Paolo ha scritto:

Quote:
"opener has no properties"
:-O e con IE funziona?
Stai ricaricando la pagina?
hai già cercato con google?
http://groups.google.it/groups?sourc...ox&sa=N&tab=wg

--
"E' l' ignoranza che crea l'intolleranza
di gente cieca e senza coscienza"
S.S.S.


Reply With Quote
  #10  
Old   
Paolo
 
Posts: n/a

Default Re: asincronia di esecuzione codice - 05-04-2006 , 09:01 AM



Cristiano Larghi ha scritto:
Quote:
In data Thu, 04 May 2006 14:50:47 +0200, Paolo ha scritto:

"opener has no properties"
:-O e con IE funziona?
Stai ricaricando la pagina?
hai già cercato con google?
http://groups.google.it/groups?sourc...ox&sa=N&tab=wg

con ie6 funziona come hai detto.
con firefox rettifico, non avevo ricaricato la pagina e cancellato la
cache. Non mi dà nessun errore in console, ma quando esegue la function
"refresh_select" elimina del tutto i tag "<select>e tutto quello che cè
dentro</select>"

non mi ci raccapezzo già più :-(



Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.