Google Maps API - медленная загрузка JavaScript - PullRequest
11 голосов
/ 18 мая 2009

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

Проблема в том, что файл 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

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

Ответы [ 3 ]

16 голосов
/ 17 ноября 2009

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

12 голосов
/ 24 мая 2009

Используйте 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 .

3 голосов
/ 23 мая 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...