PHP:防止多个javascript包含

时间:2014-10-14 01:51:58

标签: javascript php google-maps include

嗨,我遇到了javascripts特别是谷歌地图API的问题。

我有一个页面,例如包含库:

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places,visualization"></script>

//some page contents

$this->widget('MyWidgetThatIncludesGoogleAPI',array(
..
));

当我调用包含谷歌地图api的小部件时,即使我最初没有在此页面中包含地图api,也会出现问题。两次调用小部件也是一样的。

我收到错误消息称Google Maps API已多次加载,是否有一种编程方式来处理重复包含的js?

1 个答案:

答案 0 :(得分:1)

您可以使用全局变量来跟踪它是否已被包含。然后,您可以创建一个函数来包含脚本(如果尚未包含该脚本)。

$includedGoogleMaps = false;
function includeGoogleMaps() {
    global $includedGoogleMaps;
    if (!includedGoogleMaps) {
        echo '<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places,visualization"></script>';
        $includeGoogleMaps = true;
    }
}

这个功能并不是必需的,但它可以让一切变得更加清洁。