Quote Originariamente inviata da astros3 Visualizza il messaggio
Purtroppo uso js una volta ogni tre anni (solo per qualche esigenza particolare) e mi dispiace perchè non sono per nulla pratico.
Se vuoi programmare in JavaScript, devi essere pratico di JavaScript, almeno un minimo.

Quote Originariamente inviata da astros3 Visualizza il messaggio
Il debug passo passo non ho idea di come si faccia, e con quali strumenti, non lo so
Ma si può sempre imparare, studiando.

Quote Originariamente inviata da astros3 Visualizza il messaggio
In console
codice:
Uncaught ReferenceError: url_templates is not defined
    at open_window_resources (window-resources.js:22:5)
    at onload (index.html?config_filename=example:5:40)
open_window_resources @ window-resources.js:22
onload @ index.html?config_filename=example:5
window-resources.js:3 aaa
window-resources.js:19 ccc
example.js:7 bbb
Da cui intuisco che ccc viene eseguito prima di bbb
Perchè?
Perchè?
Perchè?
Ma come "perché"?
E' come dire "ho due istruzioni, e una viene prima dell'altra... perché?".
Perché quello è l'ordine delle cose, è il principio di funzionamento del linguaggio, la convenzione prestabilita.

L'uso di setTimeout() non voleva essere una proposta di soluzione, ma una dimostrazione del fatto che tutto ciò che viene "rimandato", viene eseguito in seguito, a dimostrazione che lo script referenziato dall'elemento nella pagina viene eseguito sicuramente dopo quello che lo definisce, ma con l'uso del setTimeout() si "rimanda a dopo" la sua esecuzione.

Tu hai una funzione che crea un elemento il quale referenzia lo script da eseguire: ogni contenuto di quello script verrà eseguito dopo quello attuale, perché JavaScript non è multithreading e ciò che stai caricando si mette in coda alla routine corrente.

L'uso di setTimeout() serviva a dimostrare che, pur con un intervallo a zero, se gli fai eseguire la stampa di qualcosa definita nello script che stai caricando dalla funzione, questa stampa va a buon fine, questo perché quella stampa in console viene dopo il caricamento dello script, che viene dopo l'esecuzione della funzione che crea l'elemento dello script nella pagina.

In sintesi, non puoi nella stessa funzione utilizzare variabili definite nello stesso script che viene eseguito da un elemento <script> caricato dinamicamente.

OK, uso altri linguaggi ma Java Script proprio non mi si appiglia
In altri linguaggi sarebbe uguale, a parità di scenario.
Non è un problema del linguaggio.

Studia l'Event Loop di JavaScript..