1

html 中可接受的 javascript 外部链接文件数量是多少。并且可能浏览器碰巧没有下载外部js文件。如果是,那么为什么会发生。提前致谢。

4

2 回答 2

1

这个问题的答案相当复杂。您必须考虑缓存、同时请求的数量以及身份验证等因素。

内联脚本的缺点是不能很好地利用缓存。如果您将脚本移动到外部文件,重新访问用户可能仍会将您的文件缓存在缓存中,并且页面将为他们加载更快。您应该拥有多少个脚本取决于浏览器将同时发出的请求数(通常为 4 个)、脚本的大小和执行复杂性。请记住,同一域上的CSS 文件或基本上任何资源也计入此限制。您可能会忽略样式表,media="print"因为现代浏览器会延迟加载。

如果您有超过 4 个脚本,则第 5 个脚本只会在其他 4 个脚本之一已加载时开始加载。如果此脚本包含一些on dom ready事件代码,它将被延迟。您可以考虑合并脚本或更改它们的加载顺序。

另一个需要注意的问题是更新。如果您更新脚本并且用户仍然缓存旧的脚本,您将遇到问题。一些用户甚至可能会得到一些较新的脚本和一些较旧的脚本。确保你有一个适当的机制来解决这个问题。我发现指纹在缓存管理中非常有用。

您可以考虑延迟加载原则,首先只加载最基本的脚本来显示用户绝对必须看到的内容。然后根据需要在后台加载其他脚本。

还有像谷歌地图这样的第三方服务,你实际上不能缓存这些文件,因为它们会随着时间的推移而变化,并且可能包含防止滥用等的身份验证步骤。您对这些脚本的控制有限。

总体而言,这取决于您正在制作的网站类型。如果您正在制作更多的业务应用程序,则相对较长的加载时间可能是可以接受的。如果您正在制作一个花哨的促销网站,加载时间绝对是关键,内联脚本可能适合您。

这是一个相当高级的话题,除非您遇到实际的性能问题,否则不要太担心它。过早的优化是万恶之源

于 2012-08-17T11:30:17.200 回答
1

考虑到每个外部脚本都需要时间来加载,并且为其提供服务的服务器可能处于脱机状态。

您应该考虑只包含您在当前页面上使用的脚本,而不是世界上所有用于小事的库。

可接受的外部文件数是0。在我看来。如果您希望您的网页顺利运行,则不应考虑加载任何外部内容。

当您不想将脚本保存在 localhost、css(例如:jQueryjQuery UI)上时,通常会包含外部文件以用于测试目的。但是在现场制作中,您应该将它们放在您的主机/服务器上。也许将来外部服务器将不再可用。

浏览器不会选择下载什么,它会下载他被要求下载的内容。但是如果脚本失败,或者该脚本中有需要额外库的操作并且该库不可用,浏览器将停止加载并给出错误。

于 2012-08-17T11:15:35.287 回答