这是优化吗?

Is this an optimization?

本文关键字:优化      更新时间:2023-09-26

<script type="text/javascript" src="jquery.js"></script>

<script type="text/javascript">
  <?php echo file_get_contents('jquery.js'); ?>
</script>

真的能加快速度吗?

我认为它是因为php可以获取和嵌入文件的内容比客户端的浏览器可以使文件的完整请求更快,因为php不通过网络。

传统方法的主要区别是可以缓存吗?

可能在第一次页面加载时更快,但在每次后续加载时将慢得多。在第一个示例中,客户机浏览器将缓存结果。

如果你在客户的生活中只服务一个网站,那么是的,因为你只有一个HTTP请求而不是两个。

如果你要为多个站点提供服务,这些站点都链接到同一个javascript源文件,那么你就复制了所有这些冗余数据,并且没有给客户端一个缓存文件的机会。

在这两种情况下都需要将字节传输到浏览器。唯一的区别是在后一种情况下保存了HTTP请求。还要确保使用CDATAhtmlspecialchars转义javascript。

如果你在HTML页面中包含了JS库,它就不能被浏览器缓存。将JS与普通的HTML代码分开通常是一个好主意,因为浏览器可以缓存它,并且不需要在后续请求中获取它。

所以,简而言之,这是一个优化,只有当页面被用户调用一次,而jquery没有在其他页面上使用。


或者,您可能希望使用来自google api的jquery -效果是它们通常在浏览器的缓存中,因此根本不需要传输库。

对于那一页它是这样做的。

所有后续页面使用相同的库(jquery.js下载相同的URL)受到影响,因为如果你是的,包括引用外部文件必须在一个额外的下载连接(与HTTP ' 1.1和管道相对便宜),但是——你的网络服务器是它提供了有用的标题(将来到期:筒式水管),下载的浏览器缓存,而"优化"它与每一个内容页检索它。

也可以看到这样的页面:http://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/

(这里的关键字是"revving",与那些遥远的未来到期日期有关)

第一个更好,因为浏览器可以缓存脚本。对于第二个版本,即使脚本没有改变,它也必须在每次加载页面时重新下载脚本。

唯一的时间第二个版本是一个改进的脚本,不能被浏览器缓存

这取决于有多少文件使用同一个文件。然而,在大多数情况下,这将比你的第一段代码慢,主要是因为jquery.js可以被缓存。

是的,这最初将是关于用于为页面提供服务的http请求数量的性能优化-然而,您的页面将在每次页面加载后变得更大,因为jquery.js将在第一次下载后缓存在浏览器中。

如果你的页面是静态的,就会这样。
但如果它不是静态的,你的浏览器会下载页面,而jquery没有改变,但仍然包含。如果你使用src="jquery.js"并且页面发生变化,浏览器将从缓存加载jquery,而不是再次下载,所以使用src="jquery.js"实际上更快。