我可以在facebook中包含多少个js文件?我包括5个文件。没问题..第6个没装。然后我必须将第6个代码放入第5个文件中。然后工作。那么,最大的是5个文件吗?
顺便说一句,我现在正在开发应用程序,而不是在生产中。所以它不是在压缩JS /缩小它的阶段。 :)
所以丢失js文件或没有加载的文件有点烦人。等等。
那么,FB的限制是什么?什么是文件大小限制?我知道JSON请求回调数据限制是5000 ..但不确定js包含。
答案 0 :(得分:2)
是的,Facebook不应该在IFrame应用中做任何事情。好吧即使对于FBML应用程序,也有一些可能导致问题的事情:
脚本标记必须以单独的结束标记结束,它们不像链接标记那样工作。
某些浏览器(例如IE)限制了页面上包含的链接标记的总数(IE链接标记限制似乎为31)。我不太确定脚本标签的数量是否存在类似的硬限制,但我也会检查。在网上搜索,没有产生任何结果。
在加载并运行javascript文件时,禁用从该域下载的所有其他并行文件,因此请确保您所包含的某些javascript文件不会阻止其他文件被下载。
此外,只有两六个文件是从域并行下载的,作为额外的预防措施,在任何给定时间只下载一个javascript文件。因此,请确保您没有一个过大的js文件/无法访问的js文件正在占用管道。
要绕过第5点,您可以动态编写js文件下载脚本,因为2-6并行下载的硬限制仅适用于HTML脚本文件。因此,使用javascript加载其他文件会增加可能发生的并行下载次数。
根据我的经验,我将所有30个或几个文件连接成3个文件,并将这3个文件包含在生产环境中,并继续使用单个文件进行开发。
在我看来,Facebook在某种程度上超时,并试图在早期的情况下重新加载页面,当下载一些js文件的网络延迟很高时(虽然不能证明这个理论)。
答案 1 :(得分:1)
从用户角度来看,您应该加载as few as possible,而不是试图查看可以在那里推送的数量。更多独立文件意味着更多的客户端HTTP请求,这意味着页面加载速度较慢。
另外,在投入生产之前,我minify your script,更少的字节意味着更快的页面。
答案 2 :(得分:1)
我在开发环境中加载了29个脚本,最近我开始看到文件未加载和填充的问题。
但是如果你正在编写一个基于iframe的应用程序,那么我无法推断为什么/如何facebook将限制加载的JS文件的数量。检查网络延迟,因为连接非常慢,facebook可能会尝试重新加载整个页面,并在此过程中重新获取所有静态资产,除非它们是可缓存的。
浏览器缓存也是一个因素。 Firefox 3.6做了非常积极的缓存,坦率地说,它比其他任何东西都有更多的故障。因此,请检查您的不完整的js文件是否已被浏览器缓存。