避免同一个JS文件的多个实例

避免同一个JS文件的多个实例

问题描述:

我发现加载相同的JavaScript文件两次或更多(通过PHP)可能会导致在IE中的错误(如:line 1 char 1 code 0)。这发生在从嵌套模板构建网页时(在本例中为CakePHP)。避免同一个JS文件的多个实例

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

也许,在CakePHP中,它可以通过操纵$scripts_for_layout variable来完成?为此,脚本必须非内联加载。

编辑: 我正在使用1.2,因此$ html-> script选项不可用。耻辱作为其中一个选项是'once'[true|false]

+0

@cdburgess:谢谢。 – Leo 2010-08-27 13:14:09

把所有的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); 
?> 
+0

对不起,我应该说cakephp 1.2.x - $ html->脚本不可用。原始Q编辑。 – Leo 2010-08-27 12:31:33

+0

另外,在1.3中有一个'一次'选项可用。 – Leo 2010-08-27 12:34:43

+1

是的,这工作在1.3。也许是时候升级了。 – shamittomar 2010-08-27 12:49:26