【问题标题】:Avoiding multiple instances of the same JS file避免同一个 JS 文件的多个实例
【发布时间】:2010-08-27 12:03:48
【问题描述】:

我发现加载相同的 javascript 文件两次或更多次(通过 PHP)会导致 IE 中的错误(例如:line 1 char 1 code 0)。当网页由嵌套模板(在本例中为 CakePHP)构建时,就会发生这种情况。

有没有办法只包含一次文件?

也许,在 CakePHP 中,可以通过操作 $scripts_for_layout variable?为此,必须以非内联方式加载脚本。

编辑: 我使用的是 1.2,所以 $html->script 选项不可用。可耻的选项之一是'once'[true|false]

【问题讨论】:

    标签: php javascript cakephp cakephp-1.2


    【解决方案1】:

    将所有要使用的 JS 文件放在一个数组中。然后,使其唯一并使用 CakePHP script 方法包含脚本文件。

    <?php
    //earlier in code... add/edit values in this array
    $scripts = array('jquery','wysiwyg','scripts');
    
    //make it unique
    $scripts = array_unique($scripts);
    
    //Use CakePHP script method to load multiple external js files:
    echo $html->script($scripts);
    ?>
    

    【讨论】:

    • 对不起,我应该说 cakephp 1.2.x - $html->script 不可用。原始 Q 已编辑。
    • 另外,在 1.3 中有一个“一次”选项可用。
    • 即将进行升级,但有 20 多个网站使用我的 Cake 构建的 CMS,这不是一项小任务,还有很多其他事情要做。
    • 多么奇特 - 它已经开始表现自己了。也许它是在维护升级中修复的。因为我打算按照你所说的做一些事情,所以你得到了勾号。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 2015-11-01
    • 1970-01-01
    • 2014-08-11
    • 2022-01-09
    • 1970-01-01
    • 2013-03-24
    相关资源
    最近更新 更多