Angular - Javascript - Ошибка: не удается найти переменную: google после перезагрузки страницы - PullRequest
0 голосов
/ 18 июня 2020

Я создал веб-сайт с Angular 2+ и включил API Карт Google в свой индекс. html файл:

<script
      async
      defer
      src="//maps.googleapis.com/maps/api/js?[myKey]&libraries=places">
</script>
<script src="//unpkg.com/@google/markerclustererplus@4.0.1/dist/markerclustererplus.min.js"></script>

После перезагрузки страницы только на моем Iphone карта не отображается, и я получаю сообщение об ошибке: «Не могу найти переменную: google»

На P C и Android все работает нормально.

Что делать решить ошибку?

1 Ответ

0 голосов
/ 18 июня 2020

Похоже, что сценарии работают не по порядку, что является серьезной проблемой асинхронной загрузки сценариев. Первый скрипт с атрибутом defer или async загружается параллельно, пока браузер продолжает работу, и выполняется только после загрузки, в то время как второй (синхронный) скрипт блокирует браузер и запускается сразу после загрузки (что происходит либо после, либо до выполнения первый скрипт, поэтому порядок непредсказуем).

Чтобы поддерживать порядок, либо добавьте defer ко второму скрипту и удалите async из первого (делая оба одинаковых defer и, следовательно, по порядку), либо удалите defer и async из первого скрипта, чтобы он загружался нормально.

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