Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Limite di files in .js

  1. #1

    Limite di files in .js

    Tengo a precisare che non sono esperto, ma spero che mi darete una mano.
    Ho un sito in joomla. Tuttavia, in questo sito, ci sono dei moduli javascript che in alcune pagine funzionano mentre in altre no.
    Quindi mi chiedevo: Quanti files .js può leggere un browser?

    Ho chiesto una mano su joomla, e mi è stato detto che nel mio codice sorgente ci sono 10 files .js caricati, di cui due sono jquery, mi è stato detto che sono troppi ma non mi hanno dato una soluzione ben precisa su cosa posso fare per risolvere il problema, me lo hanno solo analizzato... potreste pensarci voi per favore?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2010
    residenza
    Pianeta Terra
    Messaggi
    1,614
    Non ho visto i file, ma detto cosi penso che ti hanno detto una stupidaggine (sempre se non si tratta di file .js mooolto grandi)

    Quanti files .js può leggere un browser?
    In teoria nessun limite. ho fatto siti con 20 e + file .js

    Nella pratica, se hai + file javascript, in alcuni le funzioni possono essere chiamati con lo stesso nome o cose simili, e le cose vanno in conflitto.


    A) Puoi commentare i file .js con
    e ad uno ad uno li riattivi per vedere quali dei due o + vanno in conflitto tra di loro.
    B) Una volta scoperto, prova a cambiare posizione nel file php. Tipo uno lo metti ad inizio, l'altro metti alla fine oppure in mezzo ecc.; prova anche a cambiare l'ordine degli script in generale. Niente paura, anche i file .js nel <body> </body> vengono letti tranquillamente.
    C) Se non ottieni risultati, quelli che oramai sai che vanno in conflitto, li apri e te li leggi. Se necessario cambi il nome delle funzioni, cambi magari le classi o cose simili.

    Per una bella risata vai QUI

  3. #3
    Grazie mille! Domani ci metterò mano e ti farò sapere!

  4. #4
    di cui due sono jquery
    Magari il problema è che includi jquery 2 volte?

    In generale comunque, per un fatto di efficienza, meno script includi meglio è, in quanto ogni script esterno corrisponde ad una richiesta HTTP. Di solito prima di andare live i file js vanno combinati insieme e minificati.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  5. #5
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924

    Re: Limite di files in .js

    Originariamente inviato da Barabambaui
    mi è stato detto che nel mio codice sorgente ci sono 10 files .js caricati, di cui due sono jquery, mi è stato detto che sono troppi ma non mi hanno dato una soluzione ben precisa su cosa posso fare per risolvere il problema, me lo hanno solo analizzato... potreste pensarci voi per favore?
    potresti
    1) leggere i file strettamente necessari e caricare gli altri attraverso un loader come ad esempio yepnope. Il vantaggio è duplice perchè da un lato scarichi i file js dopo l'evento domready (che i blocchi script ritardano) e dall'altro puoi effettivamente caricare i file js solo se ti servono davvero nella pagina

    Ad esempio usando yepnope posso caricare i miei file js in questo modo (è un esempio minimale, ma è per farti capire)

    codice:
    <script src="/assets/yepnope.1.5.4-min.js"></script>
    <script>
        /* jQuery */
        yepnope([{
    	  load: "/assets/jquery-1.9.1.min.js"
        },
    
        /* Facebook SDK - only if required */
        {
      	  test: (document.querySelectorAll('.fb-like').length),
    	  yep: ["//connect.facebook.net/it_IT/all.js#xfbml=1"]
        },
    
        /**
         * Load here other libraries for jQuery
         */
         {
    	  load: "/assets/main.js"
         }]);
    </script>
    in particolare carico il js da facebook se e solo se in pagina ho un blocco con classe .fb-like. Visto che le pagine con il like sono il 20% del totale è uno spreco caricare quel file (il cui peso è 52Kb, 'tacci loro) in una pagina dove non è necessario.

    2) Oppure concateni i file js in un unico file.
    Ad esempio puoi facilmente usare Node, NPM e GruntJS per eseguire automaticamente un task che prenda i 10 file js concatenandoli in un unico file. Il vantaggio è un minor numero di get e, di norma, una maggiore compressione lato server via gzip/deflate
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  6. #6
    Grazie a tutti ragazzi. Volevo segnalarvi che ho trovato il file incriminato che mi blocca gli altri codici.
    Tuttavia, questo codice viene caricato solo su una pagina (quella in cui, appunto, serve questo codice).
    Mentre io, avendo joomla, posso modificare solo la index (e nella index non appare questo codice.)

    Vi posto il contnuto

    codice:
    function doIframe(){
    	o = document.getElementsByTagName('iframe');
    	for(i=0;i<o.length;i++){
    		if (/\bautoHeight\b/.test(o[i].className)){
    			setHeight(o[i]);
    
    			addEvent(o[i],'load', doIframe);
    		}
    	}
    }
    
    function setHeight(e){
    e.height=e.contentWindow.document.body.scrollHeight;
    }
    
    function addEvent(obj, evType, fn){
    	if(obj.addEventListener)
    	{
    	obj.addEventListener(evType, fn,false);
    	return true;
    	} else if (obj.attachEvent){
    	var r = obj.attachEvent("on"+evType, fn);
    	return r;
    	} else {
    	return false;
    	}
    }
    
    if (document.getElementById && document.createTextNode){
     addEvent(window,'load', doIframe);
    }
    C'è per caso qualche errore? Come potrei fare? Tenete conto che questo script appartiene ad un componente importantissimo per il mio sito...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2010
    residenza
    Pianeta Terra
    Messaggi
    1,614
    Hai provato a spostarlo, metterlo prima della libreria jquery, dopo, in mezzo.
    Come viene richiamato questo script nella tua pagina?

    Mentre io, avendo joomla, posso modificare solo la index
    Sei sicura? Non conosco "l'architettura" di joomla e consorti, ma mi pare alquanto strano.
    Forse basterebbe cercare nelle cartelle del CMS per trovare il file in questione.

    Per una bella risata vai QUI

  8. #8
    Grazie mille! Ora funziona tutto alla perfezione!
    Sono riuscito a cambiare di posizione gli javascript installando il plugin "JCH optimize plugin" per joomla e settandolo... e ora funzionano tutti! Grazie ancora

  9. #9
    Fino a 5 minuti fa quel plugin funzionava, ora sembra aver smesso perchè i file sono di nuovo tutti nella stessa posizione... e di conseguenza si ripresenta il problema... il bello è che non sono mai entrato in amministrazione, quindi deve aver fatto tutto da solo...

    EDIT: Niente, ora dopo alcuni refresh funziona nuovmente... dev'essere stato qualche errore momentaneo...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.