我使用 Ruby Open Graph Protocol Gem 来抓取与 YouTube、Vimeo、Metacafe 和 Dailymotion 视频相关的图像以及它们的标题和描述。这些图像显示时带有播放按钮,当用户单击图像时,它使用 ajax 加载和播放图像的相关视频。
无论如何,我注意到我的页面在刷新后需要超过 15 秒才能加载。当我删除所有附有视频(图像)的微博时,页面加载时间恢复正常。
当用户发布微博时,他们可以链接到他们想要包含在微博中的视频,并且该链接/url 的 url 存储在我的数据库中设置的 microposts 表的链接列中。
在我看来,我将当前正在循环的微帖子的链接传递到我的辅助方法中,以获取视频的开放图形协议对象。然后从返回的对象中获取图像属性并使用 image_tag 助手来显示相关图像。
image_tag get_video_data(micropost.link).image
这就是我与开放图形协议 gem 进行通信的方式.. 助手:
def get_video_data(url)
OpenGraph.fetch(url)
end
无论如何,这一切都会大大减慢我的页面加载时间。我想知道是否有办法解决这个问题?我认为这个问题是由于必须从不同的 URL 加载这些单独的图像引起的。我这样说是因为当我删除相关的微博并重新加载我的页面时,它的加载时间又恢复了正常。位于我的应用程序中的图像不会导致任何问题。
当用户发布微博时,他们基本上将他们希望添加到帖子中的视频链接粘贴到其中,然后将视频的图像显示回给他们,他们点击发布并发布微博。
我想知道是否应该将该图像上传到我的应用程序,这样我就可以显示以下视频的图像:
image_tag micropost.video_image
这样,页面将快速加载,因为它不需要从外部 URL 中提取图像。
我不太确定大型网站是如何做到这一点的,例如 fb、google+,但我想知道如何以及在可能的情况下获得解决方案,谢谢。
亲切的问候。