【问题标题】:Loading Javascript and CSS files without DNS calls在没有 DNS 调用的情况下加载 Javascript 和 CSS 文件
【发布时间】:2016-04-29 22:48:54
【问题描述】:

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

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

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

有没有更好、更快的加载方式,但仍然灵活?

【问题讨论】:

    标签: javascript php css .htaccess dns


    【解决方案1】:

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

    给定http://example.com/index.html 上的 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 服务器来查找它的位置。

    【讨论】:

      【解决方案2】:

      这个呢

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

      【讨论】:

      • 我担心 DNS 调用会降低我的网站速度 - $_SERVER['SERVER_NAME'] 会产生什么?
      • 嗯,这给了 www.example.com - 这不会仍然导致 dns 调用吗?
      • 你的项目被放置在这个路径https://www.example.com/subfolder/subfolder??
      • 这将打印您去过的主机名
      猜你喜欢
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      • 2020-02-01
      • 1970-01-01
      • 2010-09-24
      相关资源
      最近更新 更多