【发布时间】:2017-06-20 12:18:47
【问题描述】:
我正在构建一个 EmberJS 应用程序,它实际上是一个幻灯片,幻灯片是图像或视频。
我发现,在加载每张幻灯片时,从服务器加载图像或视频时会有短暂的延迟。
为了阻止这种延迟,我在我的应用程序控制器中添加了一个函数,该函数从我的模型中提取图像 url 列表,然后在它们上调用 images.forEach(i => { (new Image()).src = i });。这导致幻灯片几乎立即呈现,因为图像现在从缓存中加载。
我想知道是否可以使用视频 URL 列表做类似的事情?我能找到的关于预加载的唯一信息涉及向视频标签添加 preload 属性,但这不起作用,因为在幻灯片加载之前不会呈现页面 HTML...
【问题讨论】:
-
延迟是因为 Ember 从后端检索模型吗?
-
不,模型在应用启动时被加载到商店中,从那时起它只使用 peekRecord 所以不再有网络请求......
-
我怀疑有一个隐藏组件(它有
display: none)插入到顶层(在application.hbs模板中),它插入<video>带有preload属性集的标签到auto将完成您的想法。但是,根据浏览器的实现,它可能会阻止这种预加载(因为它知道视频不会显示)。
标签: ember.js html5-video preloading