在没有DNS调用的情况下加载Javascript和CSS文件


Loading Javascript and CSS files without DNS calls

如果我使用完整的域名在标头中引用javascript文件,加载速度是否比其他方式慢?

$domain = 'https://www.example.com';
echo '<script src="'.$domain.'/js/index.js"></script>';

问题是,如果我不打算直接引用它们,我将需要某种处理方式,以便即使使用 .htaccess 重写规则将页面重写到子文件夹(如https://www.example.com/subfolder/subfolder)也会加载它们。

有没有更好、加载速度更快但仍然灵活的方法?

您似乎将绝对 URI 与 DNS 查找的要求混淆了。

给定一个 HTML 文档http://example.com/index.html那么这两个脚本元素之间的唯一区别:

<script src="/foo.js"></script>
<script src="http://example.com/foo.js"></script>

。是后者有额外的 18 字节的 HTML(即使在你应用 HTTP 压缩之前也是微不足道的)。

无论您使用两种方法中的哪一种,浏览器都会将URL解析为http://example.com/foo.js。如果它的DNS缓存中有example.com(它会,因为它刚刚加载了HTML文档),那么它不会点击DNS服务器来找出它的位置。

这个呢

$domain = $_SERVER['SERVER_NAME'];
echo '<script src="'.$domain.'/js/index.js"></script>';