【问题标题】:Optimizing a static php website优化静态php网站
【发布时间】:2010-12-04 15:16:53
【问题描述】:

我正在制作这种风格的“静态”php 网站

<?php include "header.php" ?>
<?php include "left.php" ?>
<?php include "photos.php" ?>

在“photos.php”中,我有 3 个来自灯箱的重型 javascript 文件,我认为将 javascript 文件仅包含在此“photos.php”中而不是“header.php”中可能会很好。 但是javascript应该只在head html标签中。你有更好的方法还是我的就可以了?

非常感谢

【问题讨论】:

    标签: javascript optimization web


    【解决方案1】:

    最好尽可能将所有 javascript 放在脑海中。你可以毫不费力地做到这一点。正如 Dominic Rodger 所说,在每个页面上包含 js 文件可能没什么大不了的,因为它们应该被缓存。

    我倾向于为这类事情创建包含大量变量的页面模板类文件。更简单的做法是在包含头文件之前设置一个变量,然后在头文件中访问该变量并在适当的情况下添加 js。

    <?php 
        $includePhotoJavascript = true;
        include "header.php";
    ?>
    

    在头文件中:

     if(isset($includePhotoJavascript) and $includePhotoJavascript == true)
     {
        // add the javascript
     }
    

    【讨论】:

      【解决方案2】:

      JavaScript 不仅必须在 HTML 头部标签中。它实际上是advisable to put it at the end of the HTML file,因为它们会停止加载 HTML 文件的其余部分。

      你可以在 header.php 文件中做的事情是这样的:

      <html>
      <head>
      <title><?php print $title; ?></title>
      <?php
      foreach($javascript as $src){
      ?>
        <script type="text/javascript" src="<?php print $src; ?>"></script>
      <?php
      }
      ?>
      </head>
      

      那么您发布的文件将如下所示:

      <?php
      $title = "Photo album";
      $javascript = array("jsfile1.js", "file2.js");
      include "header.php" 
      include "left.php" 
      include "photos.php" 
      

      ?>

      【讨论】:

      • 我这样做,除了我没有包含photos.php 在内的额外包装文件,我只需将标题/javascript 变量并包含在 photos.php 本身中,然后将其设为页面已加载。
      【解决方案3】:

      如果您要走这条路,您可以尝试在包含 header.php 之前设置一个变量,该变量存储是否需要这些 JavaScript 文件。不过,可能没必要花太多精力,如果用户倾向于停留在您的网站上,他们会一次又一次地获取这些文件,因为希望您的服务器会返回 304 Not-修改后的响应,它们将从浏览器的缓存中提供。

      【讨论】:

        【解决方案4】:

        非常感谢您的想法。 我计划使主页(index.php)尽可能轻。所以 我将仅在 photos.php 中加载 javascript(lightbox.js) 并尝试执行 延迟加载到这个 lightbox.js,所以当“第一次”访问者去 photos.php javascript 文件将在缓存中。 所有这些都在背景中。 我认为 Facebook 也是如此。看这里 Optimizing Facebook

        【讨论】:

          猜你喜欢
          • 2012-01-05
          • 1970-01-01
          • 1970-01-01
          • 2012-01-16
          • 1970-01-01
          • 2010-11-29
          • 2015-09-07
          • 1970-01-01
          • 2011-12-16
          相关资源
          最近更新 更多