2009-05-17 4 views
11

Я использую API Карт Google для отображения карты на определенной странице.API Карт Google - Медленная загрузка javascript

Проблема в том, что файл http://maps.google.com/maps?file=api..... иногда бывает очень медленным - это снижает производительность страницы, потому что остальная часть JavaScript сначала загружается в готовый документ, который редко встречается - поскольку браузер блокирует ожидание файла из Google.

Я попытался переместить файл JavaScript из тега <head> в свой контент. Но остальная часть JavaScript никогда не запускается, потому что браузер ждет файл от Google.

Есть ли способ обойти это, или у кого-нибудь еще была такая же проблема? Это началось недавно, и я понятия не имею, почему.

Это мой код, если кому-то интересно:

<script type="text/javascript" src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true&amp;key=ABQIAAAAa24xicak8_ghHX58i7La7hRFh9iM79SNC94rOejOtdMRvQmJiBS6Uv5F_1BNSh9ZuSzFXyekHISgew"> </script> 
<script type="text/javascript" src="/js/maps.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
    // Google Maps 
    initialize(); 

    // Other JavaScript comes here.... 

    }); 
</script> 

Если я получить доступ

http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true&amp;key=ABQIAAAAa24xicak8_ghHX58i7La7hRFh9iM79SNC94rOejOtdMRvQmJiBS6Uv5F_1BNSh9ZuSzFXyekHISgew 

Файл загружает мгновенно.

+7

Вы используете Firebug? Я обнаружил, что firebug снизил производительность моего приложения, когда я работал с картами api, и если бы я просмотрел страницу в браузере без firebug, все было в порядке. –

+0

Я видел то же самое, но только в firefox и при работе с localhost. IE и Chrome были в порядке. – RichH

+0

Я использую Firebug для отладки. Я могу попытаться отключить его и посмотреть, помогает ли он. – janhartmann

ответ

16

Это довольно старый вопрос - решение было отключить firebug (по крайней мере для меня).

+2

Да, для меня тоже я изучал как FF, так и IE9, а когда закрыл Firebug в FF и Developer Tools в IE9, карта загрузится, thx! – Adil

3

О оптимизации JavaScript: всегда помещайте JS в низу вашего даже вашего API-интерфейса Maps API. Я не могу думать о какой-либо хорошей причине, чтобы иметь JS в голове.

+0

Я знаю, что это старо, но если вы используете google maps api или require.js, оба из них рекомендуют поместить его вверху. – skaterdav85

+1

У меня не было проблем с ним внизу для обоих. –

+0

Если вы поместите свой javascript внизу, он не будет работать до тех пор, пока страница не отобразится, что нежелательно в ряде сценариев. – Muhd

12

Использовать API Ajax от Google. С некоторого времени все сервисы Google могут быть доступны через JavaScript API. Это модульная система, вам нужно включить только библиотеку JSAPI, а затем вы можете динамически загружать нужные вам модули - она ​​не будет блокировать ваш сайт.

<script type="text/javascript"   
     src="http://www.google.com/jsapi?key=ABCDEFG"></script> 
<script type="text/javascript"> 
google.load("maps", "2"); 
google.setOnLoadCallback(function() { 
    // Your logic goes here. 
    // It will be run right after the maps module was loaded. 
}); 
</script> 

Для получения дополнительной информации см. JSAPI's developer documentation.

Смежные вопросы