instagram 图像无法在 Opera mini 中加载/显示

Posted

技术标签:

【中文标题】instagram 图像无法在 Opera mini 中加载/显示【英文标题】:instagram image doesn't load/show in opera mini 【发布时间】:2014-04-07 22:36:22 【问题描述】:

我遇到了一个问题,即我从 Instagram API 获得的图像 URL 没有在 Opera Mini 浏览器上显示图像,而它在 android 浏览器或 Safari 上运行良好。

这是image。我不确定这里的问题是什么,但是通过查看 URL,似乎图像是使用 amazons3 托管的,并且其中可能有一些缓存机制,Opera 处理得不好。这些有什么解决方法?我根本无法放弃对 Opera mini 的支持,因为我网站 50% 的流量都来自那里。最好的测试方法是在您的设备上下载 Opera Mini(我正在尝试网站 here 提供的模拟器,但没有成功)

另一个示例尝试从opera mini 打开这个instagram user profile。你可以看到大部分图片都没有加载。

【问题讨论】:

您能否添加一些无法正常工作的图片和一些始终正常工作的图片列表(您说的是“大多数图片”,而不是全部)? @klugerama 根据我在一段时间后(比如 2-4 天)的研究,这些 URL 的链接开始工作..这就是为什么它很奇怪 您是否确认图像在同一设备上使用不同的浏览器工作?会不会是客户端的 DNS 问题? @klugerama 是的,我做到了.. 我尝试在同一设备上使用 android 浏览器,它工作得很好。我尝试在同一设备上使用不同的 ISP,但仍然无法正常工作 需要有一个可重现的案例。我通过 Fiddler 加载了页面(以及向下的几页);找不到任何问题。一切都回来了 200。但是,我确实注意到图像来自 2 个截然不同的域(一些来自distilleryimage*.s3.amazonaws.com,一些来自origincache-*.fbcdn.net),它们给出了非常不同的标题。由于 Opera Mini uses a proxy 可能存在代理转发或 DNS 问题。 【参考方案1】:

Instagram 使用 javascript 渲染图像。 如果你会在opera mini中打开控制台:

server:console?post=http://instagram.com/shoptastus

您将收到 javascript 错误。 因此,由于页面上的 javascript 已损坏,因此无法加载图像。

附:您可以在opera mini 中使用server:console?post=url 获取所有javascript 错误:)

【讨论】:

是的。它在Function.prototype.bind 崩溃。 Opera Mini 不支持。 但在 Opera mini 上仅打开图像 URL 本身并不会打开图像【参考方案2】:

我已经测试了the image,但它也没有显示在我的手机上,即使更改了 Opera Mini 上的所有可用设置。

摘自Opera Mini FAQ Page:

Opera Mini 使用转码器服务器来翻译 html/CSS/JavaScript 成更紧凑的格式。它还会缩小任何图像以适应 手机屏幕。这个翻译步骤让 Opera Mini 快速, 小,而且使用起来也很便宜。

我的猜测是 Opera mini 在转码某些类型的图像时会失败。 我测试了其他图片,例如 png、jpg 和 gif,它们都可以正确显示。

收集more info about instagram images后发现他们的JFIF属性是:

JFIF Version    1.01
Resolution  1 pixels/None

如果我在 Photoshop Opera mini 上转换相同的图像,它会正确显示。 基于此,我可以假设问题与缓存或亚马逊无关,它与 opera mini 和带有 JFIF Resolution 1 pixels/None 的图像之间的关系有关

恐怕除了在 Opera Mini 错误报告页面上填写错误报告之外,我没有其他解决方案: https://mini.bugs.opera.com/ 我相信他们会查看它,这是您尽快修复此问题的最佳机会。

您也可以尝试在 Opera 社区论坛发帖:http://forums.opera.com/categories/en-opera-mini

祝你好运。

【讨论】:

【参考方案3】:

我使用的是 Opera Mini 7.0.5,我可以看到您提供的链接上的所有图像。一旦检查以下设置,如果关闭则打开。

Go to Menu > Settings and make sure "load images" is On .

【讨论】:

并不能真正帮助解决问题。在您的情况下是否会加载此图像:distilleryimage3.s3.amazonaws.com/… Opera 使用哪个版本?【参考方案4】:

解决此问题的方法是自己提供照片。

instagram API terms 可让您在 合理 的时间内缓存内容。这意味着您可以围绕这个流程做一些事情:

如果图像请求来自 Opera Mini 向服务器请求图片 缓存它 提供指向缓存图像资源的 URL 如果在 X 时间之后删除 其他 服务器您从 instagram 获得的 URL

这不是很方便,但提供优雅降级的服务总比没有服务好。

【讨论】:

这里的合理时间是多少 不确定。没有提到。我认为由您决定它的含义,只要您在不超过一周的某个时间点将其删除即可。

以上是关于instagram 图像无法在 Opera mini 中加载/显示的主要内容,如果未能解决你的问题,请参考以下文章

使用 UIDocumentInteractionController 发布 Instagram 图片

使用 iPhone Hooks 将照片中的图像/视频上传到 Instagram

Animate(right: 0) 在 Chrome 和 Opera 中无法正常工作

Firefox、Opera 中剪辑路径中的滑块,

使用 `UIActivityItemSource` 协议无法分享到 Instagram

Instagram 应用程序无法使用 Android Intent 打开