Oppure

Loading
08/08/14 14:29
Pammachio
Ciao a tutti,
sto provando a far funzionare jquery in modalità asincrona e seguendo questa guida seoblog.giorgiotave.it/caricamento-asincrono-jquery/3798 ci sono quasi riuscito, se non fosse che va su chrome e non su firefox.

Così funziona dappertutto (ma è sincrono):
[CODE]<script type="text/javascript" src="js/jquery.min.js"></script>

<script async src="js/jquery.cycle.all.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.slideshow').cycle({
fx: 'blindZ',
});
});
</script>[/CODE]

E questo asincrono invece non va su firefox:
[CODE]<script type="text/javascript">
var jQl={q:[],dq:[],dMap:[],dLoaded:0,gs:[],ready:function(e){if(typeof e=="function";){jQl.q.push(e)}return jQl},getScript:function(e,t){jQl.gs.push([e,t])},unq:function(){for(var e=0;e<jQl.q.length;e++)jQl.q[e]();jQl.q=[]},ungs:function(){for(var e=0;e<jQl.gs.length;e++)jQuery.getScript(jQl.gs[e][0],jQl.gs[e][1]);jQl.gs=[]},bId:null,boot:function(e){if(typeof window.jQuery.fn=="undefined";){if(!jQl.bId){jQl.bId=setInterval(function(){jQl.boot(e)},25)}return}if(!window.jQuery.isReady){return;}if(jQl.bId){clearInterval(jQl.bId)}jQl.bId=0;jQl.testFinished();jQl.ungs();jQuery(jQl.unq());if(typeof e=="function";)e()},booted:function(){return jQl.bId===0},testFinished:function(){if(typeof window.jQuery.fn=="undefined";){setTimeout(jQl.testFinished,10);return}if(jQl.dLoaded!=jQl.dMap.length){setTimeout(jQl.testFinished,10);return}jQl.unqjQdep(true);$(jQl.unq())},loadjQ:function(e,t){setTimeout(function(){var t=document.createElement("script";);t.src=e;document.getElementsByTagName("head";)[0].appendChild(t)},1);jQl.boot(t)},loadjQdep:function(e){jQl.dMap.push(e);jQl.loadxhr(e,jQl.qdep);jQl.dCount++},qdep:function(e,t){if(e){jQl.dLoaded++;jQl.dq[t]=e}},unqjQdep:function(e){if(typeof e!="undefined"&&typeof window.jQuery.fn=="undefined";){setTimeout(jQl.unqjQdep,50);return}for(var t=0;t<jQl.dMap.length;t++)jQl.rs(jQl.dq[jQl.dMap[t]]);jQl.dq=[];jQl.dMap=[]},rs:function(e,t){var n=document.createElement("script";);document.getElementsByTagName("head";)[0].appendChild(n);n.text=e},loadxhr:function(e,t){var n;n=jQl.getxo();n.onreadystatechange=function(){if(n.readyState!=4||200!=n.status)return;t(n.responseText,e)};try{n.open("GET",e,true);n.send("";)}catch(r){}},getxo:function(){var e=false;try{e=new XMLHttpRequest}catch(t){var n=["MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];for(var r=0;r<n.length;++r){try{e=new ActiveXObject(n[r])}catch(t){continue}break}}finally{return e}},pageIsLoaded:false,setIsLoaded:function(){jQl.pageIsLoaded=true;}};if(typeof window.jQuery=="undefined";){var $=jQl.ready,jQuery=$;$.getScript=jQl.getScript};if (window.attachEvent){window.attachEvent('onload',jQl.setIsLoaded);}else if(window.addEventListener){window.addEventListener('load',jQl.setIsLoaded,false);}else{document.addEventListener('load',jQl.setIsLoaded,false);}

jQl.loadjQ('//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js');
jQl.loadjQdep('js/jquery.cycle.all.js');
</script>

<script type="text/javascript">
$(document).ready(function () {
$(".slideshow";).cycle({
fx: 'blindZ',
});
});
</script>[/CODE]

L'esempio del secondo codice è visibile su coursesenligne.eu
Qualcuno capisce perchè non va?
Un grazie in anticipo per ogni consiglio


__________________
Prova ed inserisci annunci gratis anche con video guardaffari.it/…
aaa
08/08/14 14:56
Roby94
Innanzitutto spiegaci cosa vuoi fare. Cosa deve eseguire il browser in modo asincrono? Un animazione? Un caricamento Ajax?
Che risultato ottieni nel primo caso? Cosa vorresti modificare? Le parole tecniche servono ma solo se vengono usate in un contesto completo ed esplicativo.
aaa
08/08/14 15:18
pierotofy
Non fare affidamento su async per impostare l'ordine in cui vengono eseguiti gli script. E' semplicemente un'ottimizzazione per velocizzare il caricamento di una pagina.

Non funziona perche' l'evento onload può essere eseguito prima che gli script vengano caricati.
Ultima modifica effettuata da pierotofy 08/08/14 15:19
Il mio blog: piero.dev
08/08/14 15:54
Bonny
Ti consiglio di usare RequireJS è una libreria che ti permette ti caricare i moduli js quando ne hai il bisogno.
Ho scritto un articolo introduttivo a riguardo, un esempio d'uso:
lucabonaldo.it/alcune-librerie-aiutano/
aaa
09/08/14 15:19
Pammachio
Postato originariamente da Roby94:

Innanzitutto spiegaci cosa vuoi fare. Cosa deve eseguire il browser in modo asincrono? Un animazione? Un caricamento Ajax?
Che risultato ottieni nel primo caso? Cosa vorresti modificare? Le parole tecniche servono ma solo se vengono usate in un contesto completo ed esplicativo.


deve eseguire jquery, che poi fa eseguire lo slide di immagini
aaa
09/08/14 15:20
Pammachio
Postato originariamente da pierotofy:

Non fare affidamento su async per impostare l'ordine in cui vengono eseguiti gli script. E' semplicemente un'ottimizzazione per velocizzare il caricamento di una pagina.

Non funziona perche' l'evento onload può essere eseguito prima che gli script vengano caricati.



scusa, ma su chrome ed explorer va tutto però, è solo firefox che da problemi
non si riesce a correggere quell'evento onload?
grazie
aaa
09/08/14 15:21
Pammachio
Postato originariamente da Bonny:

Ti consiglio di usare RequireJS è una libreria che ti permette ti caricare i moduli js quando ne hai il bisogno.
Ho scritto un articolo introduttivo a riguardo, un esempio d'uso:
lucabonaldo.it/alcune-librerie-aiutano/


ci ho dato un'occhiata ma è un po complicatuccio: non sai aiutarmi per caso, per applicarlo a questo caso?
grazie
aaa
09/08/14 19:29
pierotofy
Postato originariamente da Pammachio:
scusa, ma su chrome ed explorer va tutto però, è solo firefox che da problemi
non si riesce a correggere quell'evento onload?


No. Non c'e' niente di sbagliato nell'evento onload. Il fatto che funzioni su Chrome ed Explorer e' una pura coincidenza che potrebbe cambiare in una versione futura.

Sposterei questo:

  $('.slideshow').cycle({
    fx:      'blindZ',
 });


All'interno di js/jquery.cycle.all.js (in fondo).
Il mio blog: piero.dev