Javascript 带有base64字符串(数据URI)的HTML图像标记
我每50-200毫秒从一系列HttpRequest中获取jpeg图像的二进制数据,我将这些数据转换为base64字符串,并使用javascript将该字符串插入img标记中Javascript 带有base64字符串(数据URI)的HTML图像标记,javascript,html,internet-explorer-8,jpeg,data-uri,Javascript,Html,Internet Explorer 8,Jpeg,Data Uri,我每50-200毫秒从一系列HttpRequest中获取jpeg图像的二进制数据,我将这些数据转换为base64字符串,并使用javascript将该字符串插入img标记中 var img = document.getElementById('img1'); img.src = 'data:image/jpeg;base64,' + b64str + ''; 因此,当接收到更大的图片时,我体验到图像(第一次完全显示)在几秒钟后从底部越来越小,直到到达某一点 我搜索了一下,发现 Internet
var img = document.getElementById('img1');
img.src = 'data:image/jpeg;base64,' + b64str + '';
因此,当接收到更大的图片时,我体验到图像(第一次完全显示)在几秒钟后从底部越来越小,直到到达某一点
我搜索了一下,发现
Internet Explorer 8将数据URI的最大长度限制为32 KB。(Internet Explorer 9没有此限制)
我没有带IE9的电脑可以尝试,我只有IE8和IE6。32kb的限制可能是问题所在吗?但是,为什么图像第一次显示正确,并且在收到图像后会更频繁地被剪切(总是从下至上)?我很抱歉这么说,但是对于这样的动画(5-20fps;realtime),Javascript和每帧HTTP请求不是正确的解决方案。你需要视频流。否则,尽管您可能会尝试,视频将不同步,服务器将过载,只有少数人使用它。我很抱歉这么说,但对于这样的动画(5-20fps;实时),Javascript和每帧HTTP请求不是正确的解决方案。你需要视频流。否则,请尝试,视频将不同步,服务器将过载,只有少数人使用它。是否可以将
img.src
设置为与httprequest相同的URL,以便它直接获取数据?是的,图像通常是这样。这并不能回答我的问题。为什么你不能抛弃整个XmlHttpRequest
的东西,只需将imagesrc
设置为提供二进制图像数据的URL?因为正在同步这些问题?您可以使用JS每隔50毫秒更改src
,并强制重新下载图像。如果您担心缓存问题,那么每次更改URL时,都会在URL的末尾添加一个唯一的伪参数。我已经尝试过了,即使使用img.onload()事件,图片也总是延迟显示。是否可以将img.src
设置为与httprequest相同的URL,以便它直接获取数据?是的,图像通常是。这并不能回答我的问题。为什么你不能抛弃整个XmlHttpRequest
的东西,只需将imagesrc
设置为提供二进制图像数据的URL?因为正在同步这些问题?您可以使用JS每隔50毫秒更改src
,并强制重新下载图像。如果您担心缓存,那么每次更改URL时,都会在URL的末尾添加一个唯一的伪参数。我已经尝试过了,即使使用img.onload()事件,图片总是延迟显示。接收到的图片之间的延迟可以降低到250ms左右。接收到的图片之间的延迟可以降低到250ms左右