2012-12-01 102 views
1

好了,所以我有了加载时很好看一些高清晰度图像的页面(但不是那么大,当用户看到初始页面下载半载的) 。我研究的jQuery预加载图像(如这个非常helpful Q/A在这里),但事情是,我的网页基本上是由Ember.js控制的应用程序 - 所以我不知道从哪里最好插入图像预载代码,我似乎无法找到任何有关页面完成加载前运行Ember.js代码的文档(就绪功能可能为预加载图像太晚,因为它在页面完成后运行正确吗?)预加载页面资产Ember.js和jQuery

Bottom行:如果我有Ember.js,哪里是放置图像预加载代码的最佳位置?

回答

3

没关系,你可以使用JavaScript在任何时候预先载入图像。

但是你需要考虑带宽消耗和可能parallell下载时段限制,在某些浏览器,所以我建议不要你的应用程序之前预加载许多大型图片和UI完成。

这里是一个最小的代码例如:

(new Image).src = 'preload.jpg'; 
+0

你能解释一下吗?不确定你的意思是'但是你需要考虑带宽消耗,以及在某些浏览器中可能的平行下载插槽限制,所以我建议你在应用程序和用户界面完成之前预先加载大量图像。 –

+1

我的意思是我假设你希望你的应用尽可能快地加载。如果您在加载App之前将大图片推入内存,它可能会负面影响App/UI加载时间。您想要在背景中预先加载离散图像,而不会产生任何副作用。所以我建议你在用户使用App的时候开始预加载(加载之后)。 – David

1

基本上ü要写入其中需要Emberjs应用类/对象之前运行的功能。所以你可以在创建或初始化Application对象之前运行该函数。我建议你在创建Application对象之前这样做。

+0

我明白了。有没有什么办法可以在执行这个函数的时候,在加载所有资产/图片之前,基本上实现一个白色屏幕+一点CSS加载动画? –

+2

@UzumakiNaruto我强烈反对这个建议,听起来好像是1998年闪存一遍;) – David

+0

@大卫大声笑 - 是啊,我的整点是为了避免闪存1998年的粘性。 –