这是一个很有挑战性的问题,具体的解决方案有下面几种
1,当在不同的页面都加载相同的js的时候,系统只会加载一个js.
举例来说,如果你js需要jquery。那么你只需要在你的js前再加你需要的js加载一次就行了。系统会保证jquery在你的js前面被加载。
2,另外的一种方案就是使用自定义的标签。因为joomla的自定义标签总是加载在所有的js之后。
使用自定义标签的典型代码如下:
$document->addCustomTag('<script src="'.JURI::root(true).'/components/com_myname/assets/js/script.js" type="text/javascript"></script>');
3,第3中方案就是响应系统的onBeforeRender事件,写一个插件。然后操作_scripts数组。这个数组保存了所有用于加载的js.典型的代码如下:
$document = JFactory::getDocument(); $scripts = $document->_scripts;
本人使用第三中方案,制作了一个插件,该插件可以去掉所有的对google js的引用,从而加速网站的速度。在本网站中有下载。