Back to top

Autore Topic: Ottimizzare librerie java mootools e jquery  (Letto 5988 volte)

Offline Liuk!

  • Esploratore
  • **
  • Post: 109
    • Mostra profilo
Ottimizzare librerie java mootools e jquery
« il: 25 Set 2014, 20:44:10 »
Salve a tutti volevo porvi un problemino di ottimizzazione in joomla!3...
Verificando la velocita e la pesantezza delle pagine del sito che sto elaborando mi sono accorto di alcune librerie java di spazio molto elevato!
Tra queste librerie c'è jquery.min.js e mooltools-core/more, effettuando alcune ricerche mi sono imbattuto in un plugin per disattivare le librerie mooltools cosi da risparmiare spazio!!
Fatto sta che verificando successivamente la funzionalita del sito mi sono reso conto di aver utilizzato per le slide un componente che utilizza tali librerie, cosi su alcune pagine posso permettermi di disattivarle in altre no.
Ora viene la domanda, navigando sempre mi sono accorto che ci puo essere la possibilita di richiamare tali librerie da google inserendo nell'index del template un determinato codice php cosi da risparmiare spazio, qualcuno di voi sa darmi una soluzione su come ottimizzare al meglio queste dimensioni?
Per la libreria jquery sinceramente non ho trovato grandi informazioni sul come poter agirare la sua dimenzione...

Ps: se devo includere i nomi dei plugin/componenti/template che utilizzo ve li posso anche dire!
Per maggiori informazioni potete esaminare anche voi il sito bazarmarket.it

Grazie a tutti per le future risposte!

 

Offline claudiocarrera

  • Appassionato
  • ***
  • Post: 612
  • Sesso: Maschio
  • Sviluppo siti web Brescia
    • Mostra profilo
Re:Ottimizzare librerie java mootools e jquery
« Risposta #1 il: 26 Set 2014, 10:18:34 »
Eh stavo giusto per scrivere un post simile a questo  :)
In genere disattivare le librerie che vengono caricate nel core basta entrare nel template e usare il comando "unset"  tipo:
Codice: [Seleziona]
unset($this->_scripts[JURI::root(true).'/media/jui/js/jquery.min.js']);

Ripeto "disolito" perché a volte mi da problemi e non mi elimina la libreria, probabilmente perché qualche modulo o componente sta forzando il caricamento della libreria, (almeno penso io, indagherò).

I plugin che usi non posso sapere cosa fa, probabilmente di crea lui la stringa che ti ho inserito prima in automatico.

Questo era per quanto riguarda la disattivazione.
Per quanto riguarda invece inserimento, se vuoi caricare solo Jquery tramite google ti basta inserire la stringa come per ogni altro sito, vai nel file index.php del template e inserisci:
Codice: [Seleziona]
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>e lo metti dove vuoi nel sito, se vuoi metterlo prima del caricamento dei meta tag di Joomla, lo inserisce prima di
Codice: [Seleziona]
        <jdoc:include type="head" />
Per fare invece in modo di caricarlo solo su determinate pagine, quello lo puoi fare tramite api di Joomla, puoi scegliere se caricarlo solo se è viene aperta una determinata pagina o un determinato componente o modulo, ma prima di conplicarci la vita con le api, controlla se nelle impostazioni del modulo che stai utilizzano e che richiede Jquery, potrebbe esserci la voce "carica libreria jquery" oppure "carica versione 1.11, o 1.0" ecc...
« Ultima modifica: 26 Set 2014, 10:21:13 da claudiocarrera »
Claudio Carrera - claudio@3rd-graphic.it
partita iva: 03597950983
tel: 338 9433727

Offline Liuk!

  • Esploratore
  • **
  • Post: 109
    • Mostra profilo
Re:Ottimizzare librerie java mootools e jquery
« Risposta #2 il: 26 Set 2014, 11:28:03 »
Grazie Claudio
provero il prima possibile a testare il code per richiamare il jquery e ti faro sapere!

Io sto utilizzando 'mooltools enabler/disabler' per joomla 3.3, questo plugin mi fa disattivare le librerie mooltools e se necessario specificare in quali pagine si ha bisogno di attivarle.

La cosa che non capisco sono le opzioni aggiuntive ovvero ti permette di indicare dei componenti come form di registrazione che utilizzano tali librerie di autoavviarsi cosi da non creare errori!
Cosi ho pensato di disattivarla nella pagina in cui mi serve e richiamare direttamente il componente, inserisco il nome del componente della slide che utilizzo 'djimages' ma non viene caricato e continua a non funzionare...
Sempre se tutto cio mi fa risparmiare 200kb di spazio altrimenti lo lascio attivo sulla pagina..


Offline claudiocarrera

  • Appassionato
  • ***
  • Post: 612
  • Sesso: Maschio
  • Sviluppo siti web Brescia
    • Mostra profilo
Re:Ottimizzare librerie java mootools e jquery
« Risposta #3 il: 26 Set 2014, 12:04:05 »
Se non va effetto javascript, quasi sicuramente nella console (intendo su firebug e simili) uscirà un messaggio di errore. Prova a controllare che messaggio ti dà, e controlla anche dove viene caricata la libreria di cui hai bisogno e se viene caricata.
Claudio Carrera - claudio@3rd-graphic.it
partita iva: 03597950983
tel: 338 9433727

Offline Liuk!

  • Esploratore
  • **
  • Post: 109
    • Mostra profilo
Re:Ottimizzare librerie java mootools e jquery
« Risposta #4 il: 26 Set 2014, 17:16:21 »
Rieccomi!
Allora ho effettuato tutte le prove dovute...

Se disattivo le librerie javascript tramite il plugin 'mooltools enable/disable' non mi causa nessun errore specifico a livello di console(firebug), semplicemente l effetto scorrimento non avviene e le slide restano immobili!
Ho notato se puo essere utile a trovare una soluzione che utilizzando tale plugin le librerie che si disattivano sono tre:
mootools-core.js
mootools-more.js
core.js
Tutte e tre richiamate dal percorso  in dominio/media/system/js

Sempre dal plugin utilizzato e qui ti posto l immagine, mi viene chiesto quale componente deve utilizzare tali librerie cosi da non smettere il funzionamento e anche specificando il com_djimageslider non si attiva il movimento..
Le slide sono richiamate tramite dei load position per moduli..

Mentre per il code che richiama jquery non sono riuscito a trovare la scringa di codice:
Codice: [Seleziona]
<jdoc:include type="head" />Ho trovato sia il file index.php che component.php ora non so se dipenda dal tipo di template ovvero yougrids che utilizza i framawork percio tale codice è da un altra parte...
Sinceramente sto odiando java e il fatto di essere niubbo a riguardo...


[allegato eliminato automaticamente dopo un anno]

Offline claudiocarrera

  • Appassionato
  • ***
  • Post: 612
  • Sesso: Maschio
  • Sviluppo siti web Brescia
    • Mostra profilo
Re:Ottimizzare librerie java mootools e jquery
« Risposta #5 il: 26 Set 2014, 17:38:08 »
Guarda, ti dirò, conflitti delle librerie javascript (java è un altro linguaggio) li odio anche io, sono la parte che mi fa perdere più tempo nella realizzazione di un sito, penso che finché non toglieranno definitivamente mootools i problemi ci saranno sempre.

Fai conto che più estensioni esterne usi, e più problemi ti crei, io quand posso le animazioni, slide ecc... se sono fattibili in tempi brevi, creo un modulo o personalizzo override del template. In questo modo riduci il più possibile il quantitativo di Js da caricare.

Nel tuo caso,secondo me, devi capire qual'è il Js che ti rovina lo script, prova a rinominare temponeamente quei file Js che vengono caricati e che non hanno a che fare con l'animazione del sito, tipo caption.js o altri,(in questo modo Joomla non trova il file e non lo carica, una volta che hai capito qual'è il Js problematico, cerchi la soluzione per risolverlo.

Sia chiaro però: rinominare i file Js non è una soluzione, ti serve solo per capire qual'è il Js che ti da fastidio.

La stringa Jdoc da qualche parte c'è sicuramente all'interno dell tag <head> ma non è detto che ci sia scritto all'interno del file index.php, controlla se ci sono degli include o dei require che caricano file php esterni.

Claudio Carrera - claudio@3rd-graphic.it
partita iva: 03597950983
tel: 338 9433727

Offline Liuk!

  • Esploratore
  • **
  • Post: 109
    • Mostra profilo
Re:Ottimizzare librerie java mootools e jquery
« Risposta #6 il: 29 Set 2014, 11:44:21 »
Rieccomi con un po di ritardo!
Allora ho effettuato i test richiesti, in realta non c'è nessun conflitto sembra che 'dj-imageslider'(utilizzato per le slide) utilizzi la libreria mooltools.
Mi sono informato anche dal produttore del plugin e ho scoperto che non sono l'unico ad avere problemi sembra avere dei bug per joomla 3x... infatti anche specificando che il componente necessita di tale libreria viene ignorato.!
Inoltre  ho tentato di inserire il code in testa ad head che mi hai dato e mi crea un ulteriore libreria..(devo controllare meglio il nome che non ricordo)
Codice: [Seleziona]
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
io ho la necessita di risparmiare spazio percio ho due domande da fare:
1)é possibile togliere da una pagina alcune librerie e richiamarle in altre pagine dove sono utilizzate?
2)è possibile richiamare la libreria mooltools da google e risparmiare spazio visto che quella che mi carica occupa sui 250 kb di spazio?
Sono un esploratore che sul java poco ci prende, quindi vi chiedo scusa se sono domande idiote...
Grazie mille in anticipo.

Offline claudiocarrera

  • Appassionato
  • ***
  • Post: 612
  • Sesso: Maschio
  • Sviluppo siti web Brescia
    • Mostra profilo
Re:Ottimizzare librerie java mootools e jquery
« Risposta #7 il: 29 Set 2014, 12:11:43 »
Avevo già risposto in parte  in un altro topic:
http://forum.joomla.it/index.php/topic,244519.msg1139003.html#msg1139003

Diciamo che questa è la base, poi se hai un pò di conoscenze in php puoi migliorarlo: cambiare if e usare qualcos'altro, fare un if "se diverso ecc..." se gli "id" sono tanti ti comviene aggiungere parametri nel template.
Claudio Carrera - claudio@3rd-graphic.it
partita iva: 03597950983
tel: 338 9433727

Offline steganoga

  • Abituale
  • ****
  • Post: 1313
    • Mostra profilo
Re:Ottimizzare librerie java mootools e jquery
« Risposta #8 il: 29 Set 2014, 12:29:55 »
hai guardato se esiste ancora mootools in J3 e come viene gestito?
hai guardato se l'estensione usa il behavior mootools?
...sono dove non ti aspetti di trovarmi, mi alimento della tua supponenza e disseto la mia curiosità nel silenzio.
Non sono un nemico, considerami un ospite.

Offline Liuk!

  • Esploratore
  • **
  • Post: 109
    • Mostra profilo
Re:Ottimizzare librerie java mootools e jquery
« Risposta #9 il: 29 Set 2014, 13:05:39 »
hai guardato se esiste ancora mootools in J3 e come viene gestito?
hai guardato se l'estensione usa il behavior mootools?

Sinceramente no e non so dove e come...!


Avevo già risposto in parte  in un altro topic:
http://forum.joomla.it/index.php/topic,244519.msg1139003.html#msg1139003

Diciamo che questa è la base, poi se hai un pò di conoscenze in php puoi migliorarlo: cambiare if e usare qualcos'altro, fare un if "se diverso ecc..." se gli "id" sono tanti ti comviene aggiungere parametri nel template.

Ho letto il tuo post.. molto chiaro solo che è determinato a aggiungere librerie, se le devo togliere correggimi se sbaglio, devo impostare:
Codice: [Seleziona]
unset($this->_scripts[JURI::root(true).'/media/jui/js/jquery.min.js']);al posto di questo:
Codice: [Seleziona]
$doc -> addScript(JUri::base() . 'templates/' . $this -> template . '/js/miofile.js', 'text/javascript');
Grazie mille dico sul serio! Provero ;)

Offline claudiocarrera

  • Appassionato
  • ***
  • Post: 612
  • Sesso: Maschio
  • Sviluppo siti web Brescia
    • Mostra profilo
Re:Ottimizzare librerie java mootools e jquery
« Risposta #10 il: 29 Set 2014, 15:09:26 »
Si metti unset dentro if.

Per toglierlo in tutte pagine tranne nella  pagina voce di menu con id 101:
Codice: [Seleziona]
$doc = JFactory::getDocument();
$getMenu = &JSite::getMenu();
$getActive = $getMenu -> getActive();
$id = $getActive -> id;
if($id != "101"){
unset($this->_scripts[JURI::root(true).'/media/jui/js/jquery.min.js']);
};
Dice if(se) id è diverso da 101, fai unset

Se vuoi toglierlo in tutte tranne 2:
Codice: [Seleziona]
if($id != "101" || $id != "102"){
unset($this->_scripts[JURI::root(true).'/media/jui/js/jquery.min.js']);
};

Se invece vuoi toglierlo solo  a determinate voci di menu tipo 101, 102, 103:
Codice: [Seleziona]
if($id == "101" || $id == "102" || $id == "103" ){
unset($this->_scripts[JURI::root(true).'/media/jui/js/jquery.min.js']);
};
Claudio Carrera - claudio@3rd-graphic.it
partita iva: 03597950983
tel: 338 9433727

Offline Liuk!

  • Esploratore
  • **
  • Post: 109
    • Mostra profilo
Re:Ottimizzare librerie java mootools e jquery
« Risposta #11 il: 29 Set 2014, 15:49:00 »
Questa sera provo!
Con le info che mi hai dato posso anche cimentarmi in qualche script che se funge lo posto qui a soluzione di altri!

veramente eccellente :D

Offline Liuk!

  • Esploratore
  • **
  • Post: 109
    • Mostra profilo
Re:Ottimizzare librerie java mootools e jquery
« Risposta #12 il: 01 Ott 2014, 15:52:17 »
Funziona tutto perfettamente,
prima di impostare il risolto voglio chiederti  se è possibile creare un file esterno all'index dove inserire i codici cosi da poter richiamare tale file direttamente dall'index.
Purtroppo conosco solo il c++ # sto iniziando ora con il php e se puoi darmi questa dritta ti sarei veramente grato!

Offline claudiocarrera

  • Appassionato
  • ***
  • Post: 612
  • Sesso: Maschio
  • Sviluppo siti web Brescia
    • Mostra profilo
Re:Ottimizzare librerie java mootools e jquery
« Risposta #13 il: 01 Ott 2014, 15:59:57 »
Certo che puoi, basta usare "include" oppure "require" e richiami il file che vuoi richiamare. http://www.w3schools.com/php/php_includes.asp
Claudio Carrera - claudio@3rd-graphic.it
partita iva: 03597950983
tel: 338 9433727

 



Web Design Bolzano Kreatif