Perché questo script non è in esecuzione?
-
11-10-2019 - |
Domanda
Sto cercando di aggiungere uno script al Beggin del mio file XBL, ma anche il seguente test non è in esecuzione, qualche idea del perché?
<bindings xmlns="http://www.mozilla.org/xbl"
xmlns:xbl="http://www.mozilla.org/xbl"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script language="javascript" type="text/javascript"><![CDATA[
while(true) {
dump("OK");
}
]]></script>
</bindings>
- update
Questo ciclo infinito è siccome voglio un pezzo di codice per continuare a correre. Si tratta di una comunicazione con un sistema embedded.
Soluzione
Non v'è alcun elemento script nel XBL, la documentazione è falso:
Altri suggerimenti
Boh su XBL, ma il vostro codice ha loop infinito senza condizione di arresto. Tale cosa si blocca JavaScript.
Aggiungi condizione di arresto o "fail safe" come rompere dopo 100.000 iterazioni e non si blocca il browser.
Ho anche non hanno alcuna conoscenza di XBL, ma penso anche che il modo in cui è stato scritto questo, bloccherà l'esecuzione. Al momento tutto viene eseguito sincronizzato senso, che l'interprete si fermerà alla fine while
attesa che finisca. Ora, come si tratta di un ciclo infinito, questo non accadrà mai. Che cosa si può fare è il seguente:
window.setTimeout(function() {
while(true) {
dump("OK");
}
}, 1);
In questo modo si avvia il while
in un tipo asincrono di strada. Questo dovrebbe essere non bloccante. Dimmi, se funziona.