PLUGINCome gestire "l'immagine corrotta o troncati" in Firefox
Sto usando un plugi jQuery chiamato lazyload.
Ciò che fa è lazy
caricare immagini, ovvero non le visualizza nel browser finché l'immagine non rientra nell'ambito della vista.
Questo è utile quando si dispone di una pagina che ha molte immagini, per esempio, e non si vuole che passi per sempre con il carico iniziale.
FIREFOX
Ok, quindi sono anche utilizzando Firefox
versione 23.0.1
PROBLEMA
Il plug-in è grande, ma quando lo scorrimento verso il basso dopo alcune immagini che ho iniziare a ricevere gli errori dove l'immagine non viene caricata (ha solo un generico segnaposto per un collegamento di immagine interrotto) e nella console è registri:
Image corrupt or truncated: [image url]
Non è che c'è un problema con l'immagine. Tutti rendono bene individualmente.
Non è su un'immagine SPECIFICA poiché è casuale. Se carico nuovamente la pagina, le immagini che erano corrupt
possono essere caricate ora, con altre immagini che restituiscono un collegamento interrotto e registrano corrupt
nella console.
Ho cercato in giro per questo, e sembra che ci sia qualche problema con fetch simultanei per un tag src <img>
.
Forse ci dovrebbe essere un ritardo impostato sul recupero, tuttavia non si può sempre dire per quanto tempo dovrebbe essere il ritardo. E se un'immagine è più grande di un'altra, potrebbe comunque entrare in conflitto (con un ritardo statico, a differenza di una richiamata complete
).
Pertanto, vorrei richiedere:
a) Se qualcuno sa di una soluzione a questo (come cattura quando si verifica l'errore e ri-attivazione della funzione dell'immagine carico)
b) Se qualcuno può proporre uno $.extend()
alla libreria sopra (lazyload) che creerebbe una funzione di callback e attendere fino a quando tutti i recuperi attivi sono complete
prima di caricare il successivo (SE questo è il problema - Non sono sicuro se lo è) Io non sono un jQuery ni nja quindi sono un po 'perso nel codice. Potrei capirlo, ma sarebbe probabilmente sporca ...
c) Se questo non è il problema, allora qualche direzione su come posso risolvere questo sarebbe apprezzato
Controlla la scheda di rete nella console del browser/strumenti di sviluppo. Come appaiono le richieste di immagini? Quali intestazioni stai ricevendo dal server? p/s: 'Se qualcuno può proporre un $.estendi() alla libreria sopra' ... non è così che funziona SO. – Terry
Grazie - Ho controllato la scheda di rete e ogni file è chiamato e ottiene un codice di stato 200 HTTP. Quindi il file esiste. Alcuni render, alcuni non. Non sembra particolare per le dimensioni del file. Qualcos'altro che dovrei controllare? ... –
potresti condividere il codice in jsfiddle, è difficile prevedere quale sia la causa del problema. –