【问题标题】:How to reduce http request using PHP when HTML Doc loads JS or CSS? [closed]HTML Doc加载JS或CSS时如何使用PHP减少http请求? [关闭]
【发布时间】:2014-03-12 13:44:57
【问题描述】:

当 HTML 需要加载 JavaScript 或 CSS 时,我使用 Minify 来减少 http 请求。但是,我想进一步减少http请求。
问题是:是否有必要使用PHP来输出这样的内容:

<?php
header('Content-Type:Application/x-javascript;Charset=utf-8');
echo '<script src="text/javascript>';
foreach ($files as $file) {
  echo file_get_contents();
}
echo '</script>';
?>

使用&lt;script&gt;标签和PHP输出有什么区别?

任何答案都会有所帮助,谢谢!

【问题讨论】:

  • 如果它在同一个网站中,那么您可以采用任何一种方式。我在网站上使用它的一种方法是缩小所有 css,并在标签中的实际页面上输出。这将 HTTP 请求减少到 1。这会动态发生并被缓存,直到 CSS 文件发生更改。
  • 我不知道你想问什么,但是application/javascript mime 类型已经很多年没有试验过了(去掉x-),一个 JavaScript 文件应该包含JavaScript 不是 HTML 的一部分。
  • @Quentin,谢谢!让我困惑的是,HTTP请求getJavaScript或CSS文件时是否使用PHP输出内容?
  • 我不知道这有什么令人困惑的地方。您可以使用静态文件或 PHP 生成的数据根据​​您的需要和愿望来响应请求。

标签: javascript php css http-request


【解决方案1】:

查看过期标头。使用这种方法,您的客户端(浏览器)将仅在第一次加载 JS/CSS 文件,然后将它们保存在缓存中

示例如何使用 .htaccess 文件执行此操作: https://github.com/h5bp/html5-boilerplate/blob/dac15682b35ad69f519205e1b82694d0cab189ca/.htaccess#L192

请记住,当客户端将您的文件存储在缓存中时,他们不会再次发送对该文件的请求,直到该文件过期 - 即使您更改了该文件中的内容。最好的方法是每次更改文件名时附加一些内容,例如:

<script src="path/to/js/file.js?t={TIMESTAMP}" type="text/javascript"> </script>

其中 {TIMESTAMP} 是上次部署/文件修改的时间戳

【讨论】:

    猜你喜欢
    • 2014-08-16
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    相关资源
    最近更新 更多