Hallo pl,
nein, die Längen sind da. Der http 404 wird z.B. für blob:http://rolfrost.de/e46ec984-689b-44ef-a3e4-4d1c0ef6a313 gemeldet, d.h. für deine DATA URL.
Es ist aber browserabghängig, in Chrome kommen Broken Images, im Firefox nicht. D.h. du hast ein Kompatibilitätsproblem irgendwelcher Art. Du machst ein createObjectURL, hängst das Bild mit einem src darauf ins DOM und revokest die URL dann wieder. Ich vermute, dass Firefox ein anderes Timing beim rendern hat als Chrome. Vielleicht musst Du die erzeugten object URLs in ein Array schreiben und mit setTimeout(revokeUrls, 100) verzögert freigeben. Keine Ahnung. Vielleicht ist es auch ein Chrome Bug. Oder du darfst in Chrome nicht mit new Image() arbeiten, sondern musst document.createElement("img") aufrufen - was mir als richtiges Erzeugen von DOM Elementen bekannt ist. MDN sagt zwar das sei synonym, aber wenn was nicht tickt wie gewünscht denkt man ja an alles mögliche...
Ob es effizienter ist, Längen und Blobbies abwechselnd zu senden, oder erst die Längen und dann die Blobbies, ist vermutlich eher serverseitig relevant. Wenn Du abwechselnd sendest, kannst Du auf dem Server Datei für Datei verarbeiten und brauchst ggf. weniger Speicher. Auf einem Server, der unter Last steht, kann das günstiger sein.
Beachte das "kann" - ich kenne deine serverseitigen Rahmenbedingungen nicht. Ist halt nur ein Kriterium von vielen.
Rolf
sumpsi - posui - clusi