WebSite X5Help Center

 
Michela P.
Michela P.
User

Posticipare l'esecuzione di uno script  it

Auteur : Michela P.
Visité 3188, Followers 2, Partagé 0  

Salve a tutti.

PageSpeed Insight consiglia di incorporare o ritardare il caricamento di alcuni file javascript.

Esiste un modo per inserire qualcosa del tipo <script async src="my.js"> oppure altri suggeriscono <scriptsrc="sample.js"defer></script>?

Dovrei modificare il codice ma se reinserisco il codice prima della chiusura dell'head mi duplica gli script...

Qualcuno ha idee o suggerimenti?

Posté le
17 RéPONSES
Michela P.
Michela P.
User
Auteur

Ciao, che rapidità..

Dunque io devo lavorare con una di queste ipotesi:

  1. Utilizza l’attributo async: aggiungendo l’attributo async nel tag <script></script> costringerai il Browser a scaricare il file in contemporanea con l’analisi del codice HTML e ad eseguire lo script subito dopo che ha terminato il download.
  2. Utilizza l’attributo defer: l’attributo defer invece effettua la stessa operazione diasync con la sola differenza che eseguirà il codice solo dopo aver terminato l’analisi del codice HTML.
  3. Ritardare l’esecuzione e il caricamento dei file JS: quando è possibile sposta la dichiarazione e i tag di <script></script> subito prima la chiusura del tag <body />

Francamente non saprei quale può essere meglio per posticipare i 3 js generati dal WS (xcart,jquery e xengine) che dovrebbero essere posticipati. Forse il primo..

Il problema è che non so come modificare il codice generato automaticamente aggiungendo ad esempio l'attributo async.

Non so se funziona vorrei fare dei tentativi..

Lire plus
Posté le de Michela P.
Michela P.
Michela P.
User
Auteur

Ciao Mirko, vorrei evitare il timeout e usare uno dei metodi indicati sopra. Google consiglia di incorporare o di utilizzare l'attributo HTML asincrono durante il caricamento del file JavaScript.

Lire plus
Posté le de Michela P.
 lemonsong  
 lemonsong  
User
Michela P.
Il problema è che non so come modificare il codice generato automaticamente aggiungendo ad esempio l'attributo async.

Per fare ciò che chiedi, con WebSite, puoi provare ad aggiungere gli attributi con JS/jQuery. Il post editing è sconsigliato per ovvi e ormai vecchi motivi.

Comunque, per la 3a ipotesi, il file x5cart.js è già vicino a </body>

Non so se funzioni e non so, nel caso funzionasse, se avrà ripercussioni sul caricamento degli altri elementi che compongono la pagina.

Mirko Boschetti
che poi è lo stesso di KolAsim....

setTimeout() è un metodo ed è stato inventato decenni fa:

http://www.w3schools.com/jsref/met_win_settimeout.asp

Lire plus
Posté le de  lemonsong  
Michela P.
Michela P.
User
Auteur

Ciao Lemon, speravo proprio in te.

Tuttavia.

 lemonsong  
Per fare ciò che chiedi, con WebSite, puoi provare ad aggiungere gli attributi con JS/jQuery.

Cosa intendi? In che modo? Non ho capito...

 lemonsong  

Il post editing è sconsigliato per ovvi e ormai vecchi motivi.

Escluso

 lemonsong  

Comunque, per la 3a ipotesi, il file x5cart.js è già vicino a </body>

Non nel mio caso, nella versione desktop.

 lemonsong  

Non so se funzioni e non so, nel caso funzionasse, se avrà ripercussioni sul caricamento degli altri elementi che compongono la pagina.

Per questo vorrei provare. Si tratterebbe di posticipare o di caricare contemporaneamente i contenuti above the fold.

Attendo commenti,

grazie

Lire plus
Posté le de Michela P.
Michela P.
Michela P.
User
Auteur

La modifica in sè sarebbe molto semplice. Ho provato ad aggiungere l'attributo async nel tag degli script incriminati ottenendo un grande miglioramento. Naturalmente via ftp.. Non esiste un modo per fare questa modifica evitando il post editing?

Lire plus
Posté le de Michela P.
 lemonsong  
 lemonsong  
User
Michela P.
Cosa intendi? In che modo? Non ho capito...

Nel tuo caso JS non credo possa funzionare.

Michela P.

Ho provato ad aggiungere l'attributo async nel tag degli script incriminati ottenendo un grande miglioramento.

Se non hai riscontrato controindicazioni, temo che dovrai cercare nei linguaggi lato server oppure provare ad installare PageSpeed Module su server (Apache)... sempre che ne valga la pena.

Lire plus
Posté le de  lemonsong  
Michela P.
Michela P.
User
Auteur
 lemonsong  
... oppure provare ad installare PageSpeed Module su server (Apache)... sempre che ne valga la pena.

Non conoscevo e ho preso un po' di informazioni. Perchè non dovrebbe valerne la pena?

Lire plus
Posté le de Michela P.
Michela P.
Michela P.
User
Auteur

Vabbè cmq senza post editare mi par di capire che è impossibile....

Lire plus
Posté le de Michela P.
 lemonsong  
 lemonsong  
User

Un altro suggerimento è quello di provare ad usare/adattare uno script tipo quello scritto da serzio un po' di tempo fa per rimuovere il meta tag generator: http://www.unofficialwsx5.com/index.php?topic=354.0

Se ciò fosse possibile, dovrai attendere chi ti possa dare una mano o dare altre soluzioni simili.


Mirko Boschetti
intendevo dire lo stesso postato più sopra nel suo link...

Ho inteso bene, per questo ho postato il link.

Tradotto: per fare una determinata cosa ci sono vari modi, a volte sono pochi, a volte di più.

Lire plus
Posté le de  lemonsong  
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Michela P.
Vabbè cmq senza post editare mi par di capire che è impossibile....

... scusami, ma non ho ben capito cosa vorresti ottenere non conoscendo le tue funzioni, però, basandomi sulle idee, mi domando, se l'esecuzione del tuo script modificato lo eseguissi a fondo pagina, funzionerebbe...?...

... prova in post editazione, magari direttamente in linea,  e se funzionasse, allora avresti risolto potendo ottenere lo stesso risultato senza dover post editare...

... ci sarebbe anche un altro metodo, poco ortodosso!, quello di non far eseguire l'HEAD, assegnando tutte le dichiarazioni a fondo pagina, ma che funzionerebbe con massimo controllo...

.

ciao



Lire plus
Posté le de  ‪ KolAsim ‪ ‪
Michela P.
Michela P.
User
Auteur
 lemonsong  
Un altro suggerimento è quello di provare ad usare/adattare uno script tipo quello scritto da serzio un po' di tempo fa per rimuovere il meta tag generator: http://www.unofficialwsx5.com/index.php?topic=354.0

Mah, ci smanetto un po'... però rischio di farmi passare il mal di testa dandomi una botta al ginocchio 

 lemonsong  

Tradotto: per fare una determinata cosa ci sono vari modi, a volte sono pochi, a volte di più.

mmm una traduzione un po' libera... 

 ‪ KolAsim ‪ ‪
... scusami, ma non ho ben capito cosa vorresti ottenere non conoscendo le tue funzioni,

Ok, ho dato per scontato alcune cose. Sono "funzioni" generate da WS, introdotte nel codice in automatico. La mia richiesta nasce dall'analisi del sito effettuata con PageSpeed Insights e da questa cercando di ottenere quanto suggerito google developers https://developers.google.com/speed/docs/insights/BlockingJS

Questa è l'indicazione:

Rimuovi il codice JavaScript che blocca la visualizzazione:

L'attributo async può funzionare nel secondo dei casi. Nel primo blocca l'esecuzione di alcune funzioni per le quali conviene adottare un diverso sistema (come suggerisce la guida stessa).

 ‪ KolAsim ‪ ‪

mi domando, se l'esecuzione del tuo script modificato lo eseguissi a fondo pagina, funzionerebbe...?...

... prova in post editazione, magari direttamente in linea,  e se funzionasse, allora avresti risolto potendo ottenere lo stesso risultato senza dover post editare...

Provo, ma non vedo come posso farlo senza post editare 

 ‪ KolAsim ‪ ‪

... ci sarebbe anche un altro metodo, poco ortodosso!, quello di non far eseguire l'HEAD, assegnando tutte le dichiarazioni a fondo pagina, ma che funzionerebbe con massimo controllo...

Temo che sia un po' eccessivo per ottenere un miglioramento di pochi punti percentuali...  Peraltro vorrei cercare di rimanere nell'ambito dei suggerimenti indicati nella guida di google developers.

Tutto ciò detto, naturalmente devo capire quanto e se ne vale la pena. Ci sono altre aree sulle quali è possibile intervenire ma questa, per i dispositivi mobili in particolare, sembra essere una area critica (rossa "Soluzioni da implementare").

Vi ringrazio per i suggerimenti e spero di essermi spiegata meglio e di avere eventualmente fornito dettagli utili per ulteriori approfondimenti/considerazioni.

Lire plus
Posté le de Michela P.
 lemonsong  
 lemonsong  
User
Michela P.
mmm una traduzione un po' libera...

Eh sì, non è venuta tanto bene.

Suona tipo: "è la somma che fa il totale"

Lire plus
Posté le de  lemonsong  
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Michela P.
...[...]... ...Provo, ma non vedo come posso farlo senza post editare  ... ...[...]... ...

... sei troppo avanti e ne sai molto più di me, ...però, anche se sono senza programmi, forse! e  secondo me sarebbe possibile...

... la mia IDEA, aleatoria, e la verificherai tu,  consisterebbe nel nominare la/le pagina/e in PHP...

... inserire all'inizio della sezione HEAD (la seconda selezione: Dopo l'apertura del tag HEAD), il tag di apertura PHP con apertura per stringhe di commento: 

<?php  /* inizio commento...

... inserire alla fine della sezione HEAD (la terza selezione: Prima della chiusura del tag HEAD), la chiusura per stringhe di commento con il tag di chiusura PHP: 

...fine commento  */   ?>

... da qui in poi puoi replicare ed aggiungere tutte le dichiarazioni in HEAD ed aggiungere definitivamente i tuoi SCRIPT senza dover post editare...

... 

...!... ovviamente è una supposizione campata in aria! come detto, non avendo io programmi!, ma se funzionasse, in teoria potrebbe e lo potrai dire tu, allora sarebbe l'Uovo di Colombo...!...

.

ciao




Lire plus
Posté le de  ‪ KolAsim ‪ ‪
Michela P.
Michela P.
User
Auteur
 ‪ KolAsim ‪ ‪
... sei troppo avanti e ne sai molto più di me, ...però, anche se sono senza programmi, forse! e  secondo me sarebbe possibile...

 

 ‪ KolAsim ‪ ‪

nominare la/le pagina/e in PHP...

Oh my gosh ...

 ‪ KolAsim ‪ ‪

... inserire all'inizio della sezione HEAD (la seconda selezione: Dopo l'apertura del tag HEAD), il tag di apertura PHP con apertura per stringhe di commento: 

<?php  /* inizio commento...

... inserire alla fine della sezione HEAD (la terza selezione: Prima della chiusura del tag HEAD), la con chiusura per stringhe di commento con il tag di chiusura PHP: 

...fine commento  */   ?>

... da qui in poi puoi replicare ed aggiungere tutte le dichiarazioni in HEAD ed aggiungere definitivamente i tuoi SCRIPT senza dover post editare...

... 

Nulla da eccepire! Oserei dire geniale. Mi chiedo sempre davvero come fai!

 ‪ KolAsim ‪ ‪

...!... ovviamente è una supposizione campata in aria! come detto, non avendo io programmi!, ma se funzionasse, in teoria potrebbe e lo potrai dire tu, allora sarebbe l'Uovo di Colombo...!...

Ok, posso fare il tentativo... ma non so quali possono essere le conseguenze nel modificare la/le pagina/e 

Ragazzi siete davvero una inesauribile risorsa tecnica e creativa. Ecco perchè attendo con fiducia un'altra soluzione 

Volevo informarvi che non posso installare PageSpeed Module . Mi hanno proposto un VPS ma sinceramente per me è un salto nel buio...

Grazie Kol e grazie lemon. Se vi viene in mente altro  ... ditemelo!!

Lire plus
Posté le de Michela P.