79 messaggi dal 04 febbraio 2005
Durante l'esecuzione di codice lato server inietto due distinti javascript (js1 e js2) che andranno eseguiti lato client nell'ordine di iniezione, js2 al termine di js1.
Con IE tutto va tutto a buon fine, con Chrome invece riscontro dei problemi.
Ho notato che se stacco l'esecuzione fra i due js, inserendo degli alert, tutto funziona alla perfezione anche su Chrome.
E' come se Chrome parallelizzasse l'esecuzione dei due js che in questo caso devono essere eseguiti il secondo solo al termine del primo.

Senza creare arzigogoli strani (semafori con variabili globali ad esempio), come posso risolvere in maniera elegante il problema.

Grazie
tapanata wrote:
Senza creare arzigogoli strani (semafori con variabili globali ad esempio), come posso risolvere in maniera elegante il problema.

è giusto quello che fa chrome. dovresti ripensare i tuoi Javascript in maniera che usino dei callback, cioè che 1 richiami 2 quando necessario. .

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
79 messaggi dal 04 febbraio 2005
Non ho dubbi che sul fatto che sia giusto, e quasi sicuramente la sua maggiore velocità credo sia legata anche a questi comportamenti come all'esecuzione dei js prima che il dom sia completo.

Ad ogni modo come posso fare a creare dei callback ? Potresti darmi qualche indicazione generica o meglio uno snippet d'esempio di codice js per fare ciò ?

Grazie
tapanata wrote:
Ad ogni modo come posso fare a creare dei callback ? Potresti darmi qualche indicazione generica o meglio uno snippet d'esempio di codice js per fare ciò ?

in a ci metti, dove ti interessa chiamare b
call );

ed in b, il codice è in una function che si chiama callB. la function in cui metti il codice di a parte al load. più o meno (scritto al volo).
A.js
window.onload = function() {
....
call );
}

B.js
function call ){
....
}
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
79 messaggi dal 04 febbraio 2005
Insomma della serie:

function a
{
....
}

function b
{
....
}

window.onload = function()
{
a();

b();
}

Cioè chiamo la prima funzione (a) e poi la seconda (b)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.