规则12 移除重复脚本

1. 导致重复脚本的主要因素:团队大小和脚本数量。

 

2. 重复脚本损伤性能

  a. 不必要的HTTP请求

    重复脚本无长久缓存时(没设置Expires),会产生两次HTTP请求。第一次会产生一次脚本请求,一次条件GET请求;第二次会产生两次条件GET请求;

    重复脚本有长久缓存时(设置Expires),第一次会产生一次HTTP请求,第二次就不会产生缓存(但刷新页面会产生二次max-age=0【刷新缓存有效期】的条件GET请求);

  b. 执行Javascript所浪费的时间

    脚本会多次执行。

 

3. 避免重复脚本——实现一个脚本管理模块

  a. HTML中:<script type="text/javascript" src="menu_1.0.17.js"></script>

  b. PHP中,<?php insertScript('menu.js') ?>

    <?php

      function insertScript($jsfile){

        if(alreadyInserted($jsfile){

          return ;

        } ;

        pushInserted($jsfile) ;

        if(hasDependencies($jsfile)){

          $dependencies = getDependencies($jsfile) ;

          foreach($dependencies as $script){

            insertScript($script) ;

          }

        }

        echo '<script type="text/javascript" src=" '.getVersion($jsfile).' "></script>' ;

      }

    ?>

    insertScript函数会检查脚本是否存在,不存在是再插入脚本,并先插入其依赖的脚本。getVision也很重要,长久Expires时,需要改变脚本名使得页面使用新版本脚本,这时只要简单更新getVision即可。(脚本名_版本号)

posted on 2013-04-13 21:20  BigPalm  阅读(197)  评论(0编辑  收藏  举报

导航