使用 AngularJS 从不同的服务器预加载图像
Preloading images from different servers with AngularJS
背景:
我正在尝试在 AngularJS 应用程序中预加载一些图像,然后再将它们呈现给用户以防止它们被 "peeling" 加载。我的预加载工具是 return 一个承诺下载图片后解决。
当前方法:
目前我正在使用一个简单的 $http
调用来下载图像。假设 element
是一个 <img>
标签,里面有我的图片:
$http.get("my/image/url.jpg")
.then( function() {
$animate.enter(element);
});
这似乎工作正常,但如果有更好的方法,我将不胜感激。
问题
我认为我遇到了 CORS 问题。此预加载器的一个应用是从 Twitter 加载个人资料图片。当我这样做时,我的 $http.get
在控制台中抛出一个错误:
XMLHttpRequest cannot load https://path/to/img.jpg.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://my.server.com' is therefore not allowed access.
有没有办法预加载这种图像?
我创建了一个 very simple plunkr 演示问题 - 您需要打开控制台才能看到错误。
使用其中一种标准方式预加载图像 - img
未显示在屏幕上的标签仍会强制加载图像。
与 Angular 结合使用,预加载器指令听起来会很完美。
无需重新发明轮子,充分利用Angular。
背景:
我正在尝试在 AngularJS 应用程序中预加载一些图像,然后再将它们呈现给用户以防止它们被 "peeling" 加载。我的预加载工具是 return 一个承诺下载图片后解决。
当前方法:
目前我正在使用一个简单的 $http
调用来下载图像。假设 element
是一个 <img>
标签,里面有我的图片:
$http.get("my/image/url.jpg")
.then( function() {
$animate.enter(element);
});
这似乎工作正常,但如果有更好的方法,我将不胜感激。
问题
我认为我遇到了 CORS 问题。此预加载器的一个应用是从 Twitter 加载个人资料图片。当我这样做时,我的 $http.get
在控制台中抛出一个错误:
XMLHttpRequest cannot load https://path/to/img.jpg.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://my.server.com' is therefore not allowed access.
有没有办法预加载这种图像?
我创建了一个 very simple plunkr 演示问题 - 您需要打开控制台才能看到错误。
使用其中一种标准方式预加载图像 - img
未显示在屏幕上的标签仍会强制加载图像。
与 Angular 结合使用,预加载器指令听起来会很完美。
无需重新发明轮子,充分利用Angular。