Newsgroup: it.comp.lang.javascript
Titolo: obbligo aggiunta elementi

Ciao.
Ho una funzione abbastanza pesante da eseguire e prima di chiamarla 
voglio che un <P> visualizzi del testo.
...
<p id="pMessaggio"></p>
...
<script>
function f1() {
    var testo = null;
    testo = document.createTextNode("Analisi in corso...");
    document.getElementById("pMessaggio").appendChild(testo);
 
    popolaOrganico();
}
</script>
il testo mi appare solo al termine della popolaOrganico().
non c'è un'istruzione tipo "DoEvents" in visual basic ( :-) ) che 
rilascia al sistema le risorse per un breve intervallo così lui può 
effettuare eventuali ridisegni?
grazie

 effettuare eventuali ridisegni?
No...perché non la esegui window.onload?
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

 
perchè mi serve alla pressione di un bottone

 effettuare eventuali ridisegni?
prova a lanciarlo in un thread separato:
function attendere() {
  var testo = document.createTextNode("Analisi in corso...");
  document.getElementById("pMessaggio").appendChild(testo);
}
function f1() {
  setTimeout("attendere();", 0);
  popolaOrganico();
}
-- 
Che mi importa delle tasse? Il 30% di zero sempre zero e'.

 perchè mi serve alla pressione di un bottone
setTimeout("popolaOrganico()",1); ?
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.

 prova a lanciarlo in un thread separato:
ARRRRRRRRRGH..!!! i timeout/interval *non*sono* thread separati...!
-- 
ZER0
~ "Lord Pando è il mio orsacchiotto di pezza.
Si veste di nero, si fa dei tatuaggi in faccia e dice
che è passato al Lato Oscuro, ma secondo me è solo l'adolescenza!"

 ARRRRRRRRRGH..!!! i timeout/interval *non*sono* thread separati...!
no? dimmi dove posso documentarmi che mi cospargo il capo di cenere...
:)


 :)
Cospargitelo subito, sai!
Io vorrei sapere DOVE hai letto che javascript è multithreading, visto che
la prima cosa che si dice a suo riguardo è proprio che Javascript NON
supporta thread multipli, in quanto - come ben sai - spesso la gente lo
confonde per un parente di Java.
Penso che su google potrai trovare una marea di informazioni a riguardo,
soprattutto in "tutorial introduttivi" al linguaggio.
E soprattutto, sarei curioso di sapere dov'è che hai letto che setInterval
e setTimeout, a dispetto pure del nome che hanno, creano dei nuovi thread.
La reference javascript dice chiaramente che sono semplici "schedulatori".
E direi che c'è una differenza abissale.
In JS c'è un unico thread, tant'è che sottolineo sempre l'importanza di
usare i setTimeout / setInterval con il contagocce proprio per questo
motivo: Essendo tutti concentrati su un unico thread, troppe schedulazioni
rallentano notevolmente la pagina. Anni fa, bastavano anche solo tre
schedulazioni su un AMD K6, anche con un delay non basso, per farli
"arrancare" a vicenda.


 La reference javascript dice chiaramente che sono semplici "schedulatori".
Esatto. Il Flanagan al cap. 13.4 non fa menzione di come vengano
eseguiti questi task, dice semplicemente che vengono "pianificati".
Cio' non toglie che sarebbe auspicabile che questi task siano eseguiti
su un thread separato, ma giustamente nella guida non viene fatta alcuna
assunzione su come siano realmente implementati.


 non fa menzione di come vengano eseguiti questi task, 
Il punto è che "javascript non supporta il multithreading".
Il che esclude a priori che qualsivoglia cosa possa venire eseguita in
thread separati; setInterval e setTimeout compresi ovviamente.
Sono ancora curioso di sapere dov'è che hai letto diversamente. Ovvero che
JS è un linguaggio che supporta il multithreading.
Tra l'altro, ti pare che se avesse supportato realmente il multithreading,
avrebbero fatto un'implementazione di una cosa così utile talmente "becera"
da limitarsi a impostare due "schedulatori" e rizzati...? Suvvia... :)


 da limitarsi a impostare due "schedulatori" e rizzati...? Suvvia... :)
beh hai ragione.. in effetti non mi sono mai posto il problema
