从网址预览meteor中的图片

时间:2017-07-04 16:52:32

标签: javascript caching meteor meteor-blaze

我从DDP中获取对象中的图像。当我从其他应用程序(通过ddp)调用方法时,我获取图像,并且我获得了每个图像的图像ID和图像URL的对象。现在它们都是大图像,当我点击在我的应用程序中显示下一个时,每个加载大约需要5秒。现在,我想在客户端预加载它们。为了解释它好一点,当我监控img加载在meteor工具中的chrome时,我可以看到加载ceach图像的时候(只有当我显示该图像时),但是当我从其他应用程序获取它们时我希望所有这些加载通过ddp。我怎么能这样做?感谢

更新:代码&&可行的解决方案

所以,这是我的代码,我在这里获取图像并调用功能,即兑换图片,它在localhost中工作,它是很好的解决方案,但是当它部署时我得到这个错误:

  

混合内容:' https://tasks-dev.microwork.io/imageQA'是通过HTTPS加载的,但是请求了一个不安全的XMLHttpRequest端点' http://52.39.141.15:11011/simplentp/sync'。此请求已被阻止;内容必须通过HTTPS提供。

代码:

...

this.autorun(() => {
        const user = Meteor.users.findOne(Meteor.userId(), {fields: {'services.MicroworkOAuth2Server.accessToken': 1}})
        if (user && user.services && user.services.MicroworkOAuth2Server) {
            Meteor.call('getImagesForQA', user.services.MicroworkOAuth2Server.accessToken, 10, (error, images) => {
                if (error) {
                    console.log(error)
                } else {
                    console.log('Images recieved: ', images)
                    this.current.set(0)
                    this.images.set(images)
                    this.isLoading.set(false)

                    preload(images)

                    wheelzoom($('.open-image'))
                }
            })
        } else {
            this.isLoading.set(true)
        }
    })

...

Localhost解决方案,但已部署错误

preload = function preloadImages(srcs) {
if (!preloadImages.cache) {
    preloadImages.cache = [];
}
var img;
for (var i = 0; i < srcs.length; i++) {
    img = new Image();
    img.src = srcs[i].imageURL;
    console.log(img)
    preloadImages.cache.push(img);
}
}

0 个答案:

没有答案