Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有base64字符串(数据URI)的HTML图像标记_Javascript_Html_Internet Explorer 8_Jpeg_Data Uri - Fatal编程技术网

Javascript 带有base64字符串(数据URI)的HTML图像标记

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

我每50-200毫秒从一系列HttpRequest中获取jpeg图像的二进制数据,我将这些数据转换为base64字符串,并使用javascript将该字符串插入img标记中

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
的东西,只需将image
src
设置为提供二进制图像数据的URL?因为正在同步这些问题?您可以使用JS每隔50毫秒更改
src
,并强制重新下载图像。如果您担心缓存问题,那么每次更改URL时,都会在URL的末尾添加一个唯一的伪参数。我已经尝试过了,即使使用img.onload()事件,图片也总是延迟显示。是否可以将
img.src
设置为与httprequest相同的URL,以便它直接获取数据?是的,图像通常是。这并不能回答我的问题。为什么你不能抛弃整个
XmlHttpRequest
的东西,只需将image
src
设置为提供二进制图像数据的URL?因为正在同步这些问题?您可以使用JS每隔50毫秒更改
src
,并强制重新下载图像。如果您担心缓存,那么每次更改URL时,都会在URL的末尾添加一个唯一的伪参数。我已经尝试过了,即使使用img.onload()事件,图片总是延迟显示。接收到的图片之间的延迟可以降低到250ms左右。接收到的图片之间的延迟可以降低到250ms左右