- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为一个网站异步加载 FB JS SDK,该网站具有一些共享功能(将文章、视频、照片等共享到用户的时间线)。大多数情况下一切工作正常,但在 IE7 中我注意到不断有请求发送到我的channelUrl。它们似乎永远不会结束。它并没有完全破坏网站,但我不想继续发送所有这些请求。我不确定是什么原因导致这种情况发生,任何帮助将不胜感激。
我的应用程序设置如下:应用程序域 - mydomain.com网站网址 - http://mydomain.com(注意:如果不清楚,mydomain 只是我用于该问题的一个示例。)
我的 FB.Init 调用是
FB.init({
appId: XXXXXXXXXXXXX,
channelUrl: '//' + window.location.hostname + '/channel.html',
status: true,
cookie: true,
xfbml: true
});
最佳答案
根据文档,您可能需要编辑 channel URL 文件的缓存,以确保不会发生这种情况:
http://developers.facebook.com/docs/reference/javascript/ -- 向下读到标题为“ channel 文件”的位置
引用:“ channel 文件尽可能长时间地缓存非常重要。在提供此文件时,您必须发送具有较长过期时间的有效 Expires header 。这将确保 channel 文件被浏览器缓存,这对于流畅的用户体验。如果没有适当的缓存,跨域通信将变得非常缓慢,用户体验将严重下降。在 PHP 中实现此目的的一个简单方法是:“
<?php
$cache_expire = 60*60*24*365;
header("Pragma: public");
header("Cache-Control: max-age=".$cache_expire);
header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$cache_expire) . ' GMT');
?>
<script src="//connect.facebook.net/en_US/all.js"></script>
“ channel 文件”的意义在于它有助于跨域ajax请求。如果它没有被缓存,FB api 每次想要从 facebook 本身插入和执行一些 javascript 时都会请求它。如果您将其缓存在客户端的浏览器上,它只会使用空白 html 文件的本地副本,而不是每次想要执行此操作时都会引发请求。看一下跨域ajax请求是如何执行的。我会去研究一个好的链接,然后回来描述 xdr(跨域请求)。
编辑:
关于IE7 中的 Facebook channelUrl 递归问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11025960/
有谁知道传递给 FB.init 的 ChannelUrl 参数何时真正被 fb js sdk 使用?我可以看到它在我们的 nginx 日志文件中受到攻击,它似乎来自 IE8 用户,但我似乎无法手动重新
我正在为一个网站异步加载 FB JS SDK,该网站具有一些共享功能(将文章、视频、照片等共享到用户的时间线)。大多数情况下一切工作正常,但在 IE7 中我注意到不断有请求发送到我的channelUr
我面临一个奇怪的 Facebook 连接问题,我已经按照 FB 开发人员文档中提到的正确参数设置了 FB.init 方法 - http://developers.facebook.com/docs/r
我记得 FB.init() 有一个 channelUrl 选项,但根据 this page,它似乎不再存在了 此功能是否已弃用? 最佳答案 是的,不再需要 channelUrl。这是博客文章中的引述:
我正在尝试使用客户端 OAuth 流程开发一个使用 StackExchange API 的 Firefox 插件。我只是使用 StackApps 文档中的示例代码: SE.init({ cli
我是一名优秀的程序员,十分优秀!