我有一个使用react-reduxframwework构建的复杂应用程序。除其他外,它还需要提供MJPEG图像流。该应用程序具有多个标签(准确地说是反应标签),并且许多流仅在某些标签上可见。当用户足够快地操作该应用程序时,视频流将挂起,浏览器检查窗口中将多个流显示为“待处理”。这些待处理的流中有许多不再可见。
为流提供服务目前是通过react render
方法中的简单img标签实现的:
<img src='http://a.b.file.jpg/>
我尝试使用onLoad和onError回调,但是如果流在浏览器(开发人员工具窗口)中显示为“待处理”,则不会调用这些。是否可以通过这种方法来检测“未决”状态并强制执行-重新加载图像,或者在最坏的情况下至少触发应用程序的完全重新加载?
我还观察到(从服务器日志中),即使页面上只有一个图像,并且多次要求多次请求某些流,并且只要求将其显示一次。这使情况严重恶化。可以采取什么措施来提高React应用中图像流的可靠性?
答案 0 :(得分:0)
浏览器具有每个服务器的连接数限制,并且不会显示来自同一服务器的流太多视频。如果某些视频不再可见,但应用程序或浏览器由于某种原因而无法实现,并且连接保持打开状态,则可能也是如此。超出限制的视频将变为“待处理”状态,从而使问题进一步恶化。
世俗但可行的解决方案是在可能出现这些停顿的情况下从JavaScript重新加载页面。