0

Я хочу показать маркеры на карте в виде кластеров, и для этой цели я использую «markercluster.js» и google maps v3 library. Но проблема в том, что для отображения маркеров на карте оба файла должны быть загружены полностью. Одним из решений является то, что я загружаю по крайней мере один из файлов синхронно, но я хочу загрузить оба файла с помощью async и отложить. Есть ли способ, которым я могу достичь обоих вещей. В настоящее время я загружаю файлы таким образом, но когда googleapi загружается перед markercluster, тогда он начинает показывать markerCluster как неопределенный внутри функции initialize.Как вызвать общую функцию после загрузки обоих файлов js?

<script async defer src="js/markerclusterer.js"></script> 
<script async defer src="//maps.googleapis.com/maps/api/js?v=3&callback=initialize"> </script> 

ответ

1

Вы можете использовать глобальную переменную и события onload.

<script async defer src="js/markerclusterer.js" onload="init()"></script> 
<script async defer src="//maps.googleapis.com/maps/api/js?v=3" onload="init()"></script> 

Тогда ваша функция может выглядеть следующим образом:

var g_file_loaded = 0; 

function init() 
{ 
    g_file_loaded++; 

    if (g_file_loaded === 2) 
    { 
     // your initialize function here 
    } 
} 
+0

Спасибо за ответ он работает файл. Если вы работали с входом в gplus, попробуйте ответить на мой другой вопрос. http://stackoverflow.com/questions/38211396/whats-the-difference-between-gapi-auth-signin-and-gapi-auth-authorize-in-gplus – user3542450