В идеале оно так (запусти код в консоли F12):
var oReq = new XMLHttpRequest();
oReq.open("GET", "http://javascript.ru/forum/images/ca_serenity/misc/logo.gif", true);
oReq.responseType = "blob";
oReq.onload = function(oEvent) {
var blob = oReq.response;
var image = new Image();
image.src = URL.createObjectURL(blob);
image.style.cssText = 'position:fixed;top:0;left:0';
document.body.appendChild(image)
};
oReq.send();
В чем преимущество над data:uri? В том что бинарные данные остаются нетронутыми, не происходит нелепая конвертация binary -> text -> binary