JS Asynchronous Load Pattern

-1

Questo è un problema specifico, ma credo che lo schema qui possa essere abbastanza generale da risultare utile per il pubblico qui.

Sto lavorando a un'applicazione JS offline. Nella mia applicazione JS, vorrei eseguire rapporti generati a livello di programmazione. Nessun problema. Posso renderizzare su tela e poi convertire in pdf (oh le meraviglie delle librerie JS in questi giorni). Ma c'è un fastidioso problema: il rendering delle immagini.

Non so (e in alcuni casi, non posso sapere) le immagini necessarie per caricare fino a quando il report non viene generato. Ho accesso alle immagini codificate in Base 64, quindi non sono remote e sono più o meno garantite per il caricamento. Tuttavia, non è garantito che il caricamento di un'immagine sia sincrono, anche per una stringa già in memoria. Inoltre, non è possibile dire "Disegnerò l'immagine una volta caricata" perché l'ordine di pittura è importante. In questo momento sto ricorrendo al precaricamento di tutta la mia libreria di immagini (schifo!), Ma l'unico altro metodo che posso vedere per fare questo lavoro è un refactoring per avere un pre-passo "gather resources" per istanza di report e alcuni molto non divertente lavoro di callback. Non riesco a caricare le risorse in anticipo (tranne il mio metodo corrente) perché le risorse non sono note all'avvio, il che sembra escludere parzialmente il solito approccio AMD.

Sigh: desidero che le risorse in memoria vengano caricate in modo sincrono. Quindi ho solo bisogno di allacciare e fare il refactoring o c'è un modo migliore?

    
posta J Trana 02.07.2015 - 04:34
fonte

1 risposta

0

Tag di immagine html regolari codificati sulla pagina, ma non dare loro un attributo src.

dopo aver caricato tutto sulla pagina, usa jquery e aggiungi un attributo src a ogni tag immagine che vuoi, e uscirà automaticamente e catturerà quell'immagine.

scrivi del codice per capire quale immagine vuoi in base a cosa è stato caricato, quindi

$(document).ready(function () {
 $('#somethingunique').attr('src', 'urlOfTheDesiredImage');
});
    
risposta data 02.07.2015 - 17:25
fonte

Leggi altre domande sui tag