Javascript 我可以主持Facebook';是本地的all.js吗?

Javascript 我可以主持Facebook';是本地的all.js吗?,javascript,facebook,Javascript,Facebook,我注意到,有时我的Facebook应用程序运行缓慢,当检查时,这是因为all.js文件不是从Facebook服务器加载的,所以我将该文件复制到我的服务器上并进行了测试 一切似乎都很好,实际上它运行得更快。我的问题是-您知道这样做是否有bug或错误吗?当facebook更新API时,您可能会遇到一些问题。您需要定期且频繁地(每5分钟?)更新文件。这里的问题是,现在您正在将依赖项转移,并通过扩展将该依赖项的维护转移到本地应用程序。如果它托管在Facebook的服务器上,他们可以对其进行更新以修复bu

我注意到,有时我的Facebook应用程序运行缓慢,当检查时,这是因为all.js文件不是从Facebook服务器加载的,所以我将该文件复制到我的服务器上并进行了测试


一切似乎都很好,实际上它运行得更快。我的问题是-您知道这样做是否有bug或错误吗?

当facebook更新API时,您可能会遇到一些问题。您需要定期且频繁地(每5分钟?)更新文件。

这里的问题是,现在您正在将依赖项转移,并通过扩展将该依赖项的维护转移到本地应用程序。如果它托管在Facebook的服务器上,他们可以对其进行更新以修复bug或添加功能


如果加载需要很长时间,您应该在他们的支持论坛上显示它

您的页面在任何情况下都必须加载all.js文件

  • Facebook服务器应该比承载您的用户的服务器更快 网站。因此,理论上从facebook加载js文件应该 快点
  • 更好的方法是将文件缓存一段时间。这将使页面在初始页面之后的加载速度大大加快
  • 正如人们所提到的,all.js文件会随着bug修复等不断更新。因此,最好是获取最新版本的文件,而不是在一段时间后在服务器上手动更新

很肯定这是违反TOS的。还有,你没有得到更新,等等。还有,你的主机比FB快吗?那是一个非常好的服务器:)我不知道服务器是否运行得更快,但很明显,现在应用程序运行得更快,可能是因为它不必在另一台服务器上搜索文件,可能对你来说更快。但考虑到你的网站将在世界某个地方的服务器,FB有更好的世界平衡,世界缓存等。。。我不确定,但我预测这将对TOS不利。我可以想象,它是由最终用户浏览器缓存的,因此只能在第一次加载时获得。而且他们可能已经从之前的网站访问中得到了它。加载站点时,请检查get请求-第二轮.js文件的代码是什么?它可能是304,没有修改,所以没有(重新)加载。不!我的意思是,你需要每5分钟检查一次,如果有变化就更新。如果API在没有向后兼容性的情况下发生更改,那么您的应用程序将在一段时间内无法工作。本地应用的一个例子是:将PHP SDK和JS一起使用,Facebook更新了cookie格式,这两种格式都破坏了我的网站,直到我发现并有时间拉下更新的PHP SDK。在现实世界中保持这些同步是不可能的,除非您对这两个版本都有本地控制。我不会说不可能,只要您只将其缓存约1小时(或更长时间,取决于对站点的重要性),它就应该在合理的时间范围内同步。我最后做的是将脚本标记指向一个local/path/to/all.js,并使用url重写将其指向一个服务器端脚本,该脚本检查缓存中的当前文件,如果不存在,则从facebook下载。今天的all.js加载时间超过20秒,但sharethis.com也有类似的问题(buttons.js>40秒),因此我正在采取措施确保这两种方法都不会影响将来的页面加载时间。