我们正在考虑将我们的.js拆分为两个域,以便实现并发加载。
问题:我们可以a)为此目的使用子域吗?b)并发加载是否也适用于https?
例如,我们想要请求两个文件:
https://www.example.com/firstfile.js
https://subdomain.example.com/secondfile.js
可行?替代?
答案 0 :(得分:3)
据我所知,它不起作用。脚本设置为阻止并行下载。原因是并行加载脚本会导致javascript中的竞争条件。缩小或按需加载是您的最佳选择。
答案 1 :(得分:3)
我认为你必须考虑网络的延迟(这是一种浪费的时间,为每次往返的电话加起来)。延迟是杀死HTTP呼叫响应的原因。
就个人而言,我按照趋势来减少http电话的数量 我将所有文件合并为一个(+ minimize + gzip)
答案 2 :(得分:1)
脚本引起的问题是它们会阻止并行下载。 HTTP / 1.1规范建议浏览器每个主机名并行下载不超过两个组件。如果您从多个主机名提供图像,则可以并行执行两次以上的下载。但是,在下载脚本时,即使在不同的主机名上,浏览器也不会启动任何其他下载。 (source)
听起来有问题。
答案 3 :(得分:0)
a)是的。使用document.domain可以避免同源策略问题。
b)我不知道,但我想不出有什么理由不应该这样。答案 4 :(得分:0)
“快速网站”或“更快的网站”(我建议您阅读)一书中提供的替代方案建议使用javascript函数/方法以图形方式加载javascript文件,该函数/方法将子节点附加到元素。
您可能希望对该主题进行一些研究,但这是一个您可能想要考虑的好习惯。
的问候,