Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.lang.javascript > #8261
| Newsgroups | it.comp.lang.javascript |
|---|---|
| Date | 2018-10-16 04:07 -0700 |
| Message-ID | <1cd4f41d-cca6-4adf-8b2f-671486214f29@googlegroups.com> (permalink) |
| Subject | jquery 3 e document.ready |
| From | gandalf.corvotempesta@gmail.com |
Ciao a tutti
Sto letteralmente diventando cretino nel risolvere un problema apparentemente semplice ma che credo sia causato da jquery3
In pratica, la document ready viene triggerata prima ancora di aver scaricato tutti i plugin della jquery stessa.
La pagina è così composta:
<html>
<head>
<script src='enorme_file_minificato.js'>
<script src='altro_enorme_file_minificato.js'>
<script src='ulteriore_enorme_file_minificato.js'>
<script>
var variable;
var variabile2;
var altrevariabili;
var tantissime_altre_variabili;
var stringa = 'ciao mondo';
</script>
</head>
<body>
la pagina
</body>
<script>
$(document).ready(function() {
});
</script>
</html>
La jquery è dentro "enorme_file_minificato.js"
Tonnellate di plugin jquery e non, sono dentro "altro_enorme_file_minificato.js"
Altra roba è dentro "ulteriore_enorme_file_minificato.js"
Da quel che so (e che ho provato centinaia di volte su decine e decine di browser/combinazioni diverse),
il browser fa il parse in fila, prima di arrivare al codice nel footer,
ha scaricato tutto il codice esterno (dato che è referenziato prima)
Non è il mio caso.
Ricevo errori del tipo:
"$ is not defined"
"variabile is not defined"
"Cannot read property 'trim' of undefined" (riferita a stringa.trim())
"Cannot read property 'replace' of undefined" (riferita a stringa.replace('mondo','italia');
Non ne vengo a capo. Sono almeno 2 mesi che faccio prove su prove.
Ho letto sul forum jquery che dalla v3 la document ready è asincrona e
potrebbe venire triggerata prima che il resto dei plugin sia scaricato.
Il come sia possibile non lo so, dato che dovrebbe essere il browser a
bloccare l'esecuzione dello script nel footer prima di aver scaricato
tutti quelli degli header.
Fatto sta che spesso ricevo gli errori di cui sopra, o plugin non riconosciuti
etc etc.
Ho "parzialmente" (ricevo ancora troppi errori del genere) risolto cambiando
tutti i riferimenti da "$(document).ready" a
$(window).on('load', function(){
$.ready.then(function(){ })
});
In pratica, la $.ready viene triggerata dopo la window.load (che si triggera
dopo che il browser ha scaricato tutto, immagini compreso).
Idee? Sto veramente diventando matto.
Back to it.comp.lang.javascript | Previous | Next — Next in thread | Find similar
jquery 3 e document.ready gandalf.corvotempesta@gmail.com - 2018-10-16 04:07 -0700
Re: jquery 3 e document.ready gandalf.corvotempesta@gmail.com - 2018-10-17 09:02 -0700
Re: jquery 3 e document.ready Alessandro Pellizzari <shuriken@amiran.it> - 2018-10-19 10:12 +0100
Re: jquery 3 e document.ready gandalf.corvotempesta@gmail.com - 2018-10-19 03:22 -0700
csiph-web