5

我一直在单独的 .js 文件中编写 javascript 函数。在我的上一个项目中,javascript 文件的数量更多,因此页面加载速度较慢,因为请求数量更多。因此,出于实验目的,我转换了几个带有 .php 扩展名的 .js 文件,并在它们中添加了包含语句。这样加载时间性能更好。在 .php 文件中编写 javascript 有很多优点。我可以访问 php 变量并轻松地将它们传递给 javascript。

我的疑问是,在 .php 文件中编写 javascript 然后包含它们有什么缺点吗?

我的理解是,当页面加载时,它会调用 javascript 文件并并行执行 php 部分。所以我们写了onload函数。

4

3 回答 3

8

如果您想在服务器端使用 PHP 将多个 Javascript 文件编译为一个,您可以执行以下操作:

<?php
// script.js
header('Content-Type: text/javascript'); // Tell browser to treat file as Javascript

$files  = array(
    'script-1.js',
    'script-2.js',
    'script-3.js'
);

foreach($files as $file){
    // Import each file
    echo file_get_contents($file).PHP_EOL;
}

然后,在您的页面中,只需引用该文件,就好像它是一个 Javascript 文件一样:

...
<script src="script.php"></script>
...
于 2012-11-24T07:46:40.577 回答
3

大多数浏览器可以使用 2 个或更多同时连接来加载资源。因此,将 javascript 保存在单独的文件中可能允许浏览器充分利用所有连接。您应该<script>在 HTML 中尽可能晚地包含这些标签,以便在任何 JS 开始加载之前编写页面的内容。

使用 PHP 的一个优点是压缩 JS 文件以减小它们的大小。

如果 javascript 文件的大小很小,比如 < 100 KB,那么在一个 PHP 脚本中包含多个文件可能会更快。但是如果 javascript 文件更大,比如 500 KB,将它们分开可能会更快。

实验和调整将帮助您找到答案。这里没有普遍的真理。

于 2012-11-24T07:43:06.197 回答
1

从 php 加载 js 文件的问题是您正在增加响应的大小,因为您的页面将在浏览器上缓慢呈现。另一方面,如果浏览器加载您的 js 文件,浏览器会发送不同的 js 文件请求,因此如果您不希望初始页面加载缓慢,请不要将 js 放入 php.ini 中。

如果您想加快 js 文件的加载速度,请执行以下操作

  1. 使用javascriptCompressorjsmini等工具缩小所有 js 文件
  2. 将这些压缩文件放在其他支持cdn的服务器上,您可以在一些免费的cdn上免费托管您的文件,从cdn加载总是更快,浏览器可以一次下载多个文件

  3. 从 google cdn url 加载 jquery 或其他库之类的文件,或者各个站点使用过期标头让浏览器长时间保留您的 js 文件,这样它就不会在非常请求时加载

如果您遵循这些技术,您的页面将加载得更快

于 2012-11-24T08:10:40.097 回答