删除加载的第二个javascript实例

时间:2013-12-18 12:49:12

标签: javascript php instance

我在'head'中有两个javascript加载Joomla的实例。

第一个来自模板。 第二个来自一个组件。

我需要删除第二个实例,如下所示:

<!-- keep this one -->
<script src="//code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>

<!-- remove this one -->
<script src="//code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>

我如何用PHP做到这一点?

修改

我可以做这样的事情(不是php dude)删除第二个实例吗?

$string='<script src="//code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>' ;

$string_array=explode(",","$string");

$output[]=$string_array[0];

for($i=1;$i<count($string_array);$i++){
if(!in_array($string_array[$i],$output)){
$output[]=$string_array[$i];
}
}
print implode(",",$output);

1 个答案:

答案 0 :(得分:0)

这里首先要注意的是,两位代码都没有特别好写 - 即使从本地缓存中获取,两者都会在很长一段时间内阻止html加载。使用CMS的一个主要原因是,您可以最大限度地减少对HTML外部资源的调用次数,以提高性能。

  

我可以做这样的事吗

是的,但是您需要启用输出缓冲并将其挂钩到正确的代码中,这将比维护插件/模板更多地维护PITA。

或者你可以将它实现为Apache输出过滤器 - 但是(AFAIK)它(当前)不能调用fastCGI或mod_php作为输出过滤器。您可以实现一个简单的HTTP代理脚本作为请求的终点并在那里重写HTML。

合并请求的工具(例如mod_pagespeed)可能会自动删除重复的请求(尽管documentation for mod_pagespeed's combine_javascript没有说明它如何处理这种情况)。