包括Jquery或类似文件,它应该是有条件的吗?

时间:2011-11-17 04:14:15

标签: php javascript jquery

简单快速的问题:

我需要一个站点的jquery库,所以我在我的header.php文件中访问它:

<head>
    <!-- include jQuery library -->
    <script type="text/javascript" src="../javascript/jquery.js"></script>
</head>

现在我的问题是我是否应该在其中放置一些其他的PHP脚本以确保它仅在我需要它时才包含给定页面?我的直觉告诉我,在我需要它时只加载jquery文件是绝对正确的,但我发誓我总是看到像这样的东西在没有考虑的情况下加载,如果在给定的情况下实际需要它们。所以也许总是把它放在那里也没有坏处。

那应该是这样吗?伪代码:

<head>
        <?php 
           //set jquery variable to true or false in configure.php file based on situation
           if($jquery){
           //include the jquery script!!
           }
            else{
           //jquery??? we don't need that here
           } 
        ?>


 </head>

2 个答案:

答案 0 :(得分:1)

通常最好只加载页面所需的内容,但如果你在任何地方都包含jQuery,请确保:

1)它被缩小(以减少开销)。

2)您从CDN(例如Google's)发球。用户具有缓存版本(从而加快页面加载)的可能性将高得多。参见:

http://encosia.com/3-reasons-why-you-should-let-google-host-jquery-for-you/

答案 1 :(得分:0)

这不是什么大不了的事。

请记住,(大多数)人们的浏览器会在至少一段时间内缓存文件。如果说您的主页不需要jQuery,但是关于页面的话,那么网络连接速度较慢的人将会在您的页面上遭受更长的页面加载持续时间。

即便如此,您绝对应该尝试使用缩小版本的jQuery来减少必须提供的数据量,并且您的用户必须下载。更好的是使用像谷歌这样的CDN,因为它们已经过优化以便分发给用户,而且由于广泛使用它,人们更有可能将其缓存在他们的系统上。 HTML5 Boilerplate有一个很好的方法来包含来自Google CDN的jQuery,并使用服务器上的副本作为后备:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script>
<script>window.jQuery || document.write('<script src="path/to/jquery-1.5.1.min.js">\x3C/script>')</script>

由于脚本和样式表阻止页面加载直到完全下载(对于大多数浏览器),因此在</body>标记之前让jQuery包含标记也可以在一定程度上抵消较长页面加载的问题。这样做的唯一问题是,任何依赖于jQuery进行站点交互的东西都不会立即响应。

鉴于,如果您绝对想要有条件地包含jQuery,那么您提供的代码片段应该可以正常工作。