- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
有谁知道传递给 FB.init 的 ChannelUrl 参数何时真正被 fb js sdk 使用?我可以看到它在我们的 nginx 日志文件中受到攻击,它似乎来自 IE8 用户,但我似乎无法手动重新创建它。我有一个粉丝页面 iframe 应用程序,带有点赞按钮和评论插件。
最佳答案
你可以看到这个帖子。解释得很好。
https://developers.facebook.com/blog/post/2011/08/02/how-to--optimize-social-plugin-performance/
此帖子链接将来可能会更新。所以我复制粘贴了 FB 开发者博客中的整篇文章,并将全部功劳归功于作者。
操作方法:优化社交插件性能作者:Ankur Pansari - 2011 年 8 月 3 日凌晨 12:00
数以百万计的网站使用 XFBML 来呈现社交插件。我们想分享一些可以提高这些网站性能的最佳实践。具体来说,我们提供自定义 channelUrl 和异步加载,使用后,将缩短加载时间并减少其他问题,例如重复计算来自 Facebook 的推荐流量。
自定义 channel URL 是 FB.init 函数中称为 channelUrl 的可选参数。初始化 JavaScript 库时,在 FB.init 函数中添加 channelUrl 参数:
<div id="fb-root"></div>
<script src="//connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
appId : 'YOUR APP ID',
status: true, // check login status
cookie: true, // enable cookies to allow server to access session,
xfbml: true, // enable XFBML and social plugins
oauth: true, // enable OAuth 2.0
channelUrl: 'http://www.yourdomain.com/channel.html' //custom channel
});
</script>
channelUrl 指向您添加到本地目录的文件,这有助于提高某些旧版浏览器的通信速度。如果没有 channelUrl,我们将被迫使用变通方法,例如在 Conceal 的 iframe 中加载网页的第二个副本,以正确加载社交插件。解决方法会增加加载时间并增加来自 Facebook 的推荐流量。
要创建 channel.html 文件,请将以下行添加到文件(位于 http://www.yourdomain.com/channel.html ):
<script src="//connect.facebook.net/en_US/all.js"></script>
如果您有能力运行 PHP,我们强烈建议为 channelUrl 文件设置一个长缓存以确保最佳性能。这是完成此操作的示例 PHP 脚本:
<?php
$cache_expire = 60*60*24*365;
header("Pragma: public");
header("Cache-Control: maxage=".$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>
在这种情况下,您还应该将 channelUrl 文件设置为完全限定的 URL,例如 http://www.yourdomain.com/channel.php .
在我们的测试中,添加自定义 channelUrl 可以提高 Internet Explorer 的性能,因此建议我们所有的开发人员都包含它。当包含该参数时,Internet Explorer 会产生统计上显着的性能提升,其中具有 5 个 XFBML 插件的测试网站的加载时间从 1.10 秒缩短到 0.43 秒。
异步加载是另一种简单的策略,它允许您的页面快速加载而不会阻塞页面其他元素的加载。成功加载 JS SDK 后,我们调用 window.fbAsyncInit 函数。所有依赖于 Facebook API 调用的前端函数都应分离并通过 window.fbAsyncInit 调用。这确保了 Facebook 功能以非阻塞方式加载,并将加快其呈现速度,这具有积极的 SEO 优势。在设计社交功能时,您应该以这种心态着手。
例如:
<html xmlns:fb="https://www.facebook.com/2008/fbml">
<body>
<div id="fb-root"></div>
<script>
/* All Facebook functions should be included
in this function, or at least initiated from here */
window.fbAsyncInit = function() {
FB.init({appId: 'your app id',
status: true,
cookie: true,
xfbml: true});
FB.api('/me', function(response) {
console.log(response.name);
});
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>
</body>
<html>
我们更新了文档以反射(reflect)这些选项的重要性,并更改了默认示例代码以包含 channelUrl。作为 Operation Developer Love 的一部分,我们将继续更新我们的文档,并通过“How-To”博客文章分享更多最佳实践。
关于javascript - 什么时候真正使用 ChannelUrl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8980012/
有谁知道传递给 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
我是一名优秀的程序员,十分优秀!