it-swarm-eu.dev

Miglioramento della velocità a spese del mancato funzionamento di JS disattivato

Ho una galleria di immagini che attualmente carica le immagini usando i tag img standard e poiché ha molte immagini di grandi dimensioni si carica abbastanza lentamente.

Posso velocizzare le cose facendo caricare dinamicamente le immagini dallo script della galleria dopo il caricamento della pagina. Ho provato questo e c'è un significativo miglioramento delle prestazioni. Il problema è farlo in questo modo l'immagine non viene caricata se l'utente ha JS disabilitato.

Quindi la domanda è: è un compromesso utile ottenere prestazioni a scapito del fatto che la pagina non funzioni se JS è disabilitato?

In questo caso specifico penso che userò il tag noscript, ma cosa succede se non avessi il controllo dell'output html (diciamo in un CMS).

2
Sruly

Alcuni pensieri rapidi:

  • Riprogetta l'interfaccia utente in modo che non sia necessario caricare più di N immagini. Ad esempio, introdurre l'impaginazione.
  • Molti browser visualizzano solo immagini visibili all'utente. Considera di nascondere le altre immagini spostandole fuori dallo schermo o in un div con overflow: nascosto o qualcosa del genere.
  • Carica le prime N immagini su Pageload e successivamente le altre. Il caricamento delle immagini rimanenti richiederebbe javascript e potresti aggiungere un tag noscript che aggiunge l'impaginazione per i pochi utenti che non hanno abilitato JS.
  • A seconda del tipo di immagini con cui hai a che fare, combina le immagini in un foglio Sprite e caricale tutte come immagini di sfondo usando la posizione di sfondo nei CSS per mostrare solo le parti giuste. Il tempo di caricamento iniziale sarà pesante, ma memorizzabile nella cache.

Alla fine non posso rispondere se lo spegnimento di JS sia un compromesso utile perché non so quale sia il tuo pubblico. Avrei bisogno di maggiori informazioni. Nella maggior parte dei casi con siti Web su cui ho lavorato, tendiamo a migliorare progressivamente. Quindi il terzo esempio nella mia lista sarebbe quello che probabilmente farei.

4
Rahul

Se invece di richiedere a JS di accelerare il caricamento delle immagini, le immagini vengano caricate alla fine di un'altra pagina in modo che, quando si desidera visualizzare la galleria, siano già caricate. Vuoi solo assicurarti che le immagini siano dopo tutto il contenuto importante e che tu usi gli stessi nomi in modo che possano memorizzare nella cache.

Se volessi continuare con il caricamento con JS, ti consiglio di verificare prima JS e di utilizzare il carico dinamico se supportano JS, e di ricadere su uno standard se non hanno JS.

1
LoganGoesPlaces

Puoi farlo progressivamente. Cioè, il codice HTML iniziale genera tag IMG, come fa ora. Ma immediatamente al caricamento, jQuery si attiva e sostituisce in modo dinamico i tag IMG con i caricatori personalizzati. Il meglio di entrambi i mondi.

1
Chase Seibert

Anche le grandi aziende stanno iniziando a richiedere Javascript. Ad esempio, se JavaScript è disattivato in IE, sapevi che non puoi nemmeno scaricare Google Chrome? Il pulsante Accept and Install Non funziona. Mostrano semplicemente questo bit di testo nella parte superiore dello schermo:

Per scaricare questo software è necessario un browser abilitato per JavaScript. Fai clic qui per le istruzioni su come abilitare JavaScript nel tuo browser.

Personalmente ritengo che il requisito Javascript sia un errore da parte loro per questo scenario, ma sto divagando.

Ovviamente dipende dal tuo pubblico, ma negli ultimi due anni ho costruito anche alcune interfacce Web che richiedono Javascript per funzionare.

L'unica preoccupazione rimasta è la SEO. Se desideri che le immagini nella tua galleria vengano indicizzate da Google, dovrai visualizzarle nell'HTML.

1
Steve Wortham

La domanda "Cosa succede se hanno Javascript disattivato" è una domanda che dovrebbe vivere da sola. Mentre dovresti assicurarti che la tua app/sito sia ancora utilizzabile con JS disattivato, dovresti anche pensare a chi è il tuo pubblico. Onestamente - è il 2010 e gli sviluppatori web non dovrebbero nemmeno pensare a questo problema (non lo faccio più).

Usa le analisi per capire se i tuoi utenti hanno JS disattivato/attivato. Se è inferiore al 5% dei tuoi utenti, non perdere nemmeno tempo con una soluzione alternativa.

1
abrudtkuhl