Время обработки обратного вызова в API Google API?

Скрипт клиентской библиотеки API JavaScript JavaScript загружается в раздел следующим образом:

<script src="https://apis.google.com/js/client.js?onload=loadBodies" type="text/javascript"></script>

Метод, указанный в параметре onload, вызывается при загрузке кода API. Гарантируется ли это, что это будет также после завершения загрузки DOM? Мой метод onload должен найти элемент по идентификатору и изменить его с использованием данных, полученных в API Google, и я беспокоюсь о том, могу ли я рассчитывать на доступный элемент в момент вызова метода. jsjs

0
nl ja de

1 ответы

Клиент JS загружается асинхронно независимо от загрузки DOM, поэтому нет гарантии, что DOM будет готов, когда клиент JS завершит загрузку. Вы можете дождаться загрузки DOM, чтобы начать загрузку JS-клиента, но для достижения наилучшей производительности я рекомендую использовать обратный вызов window.onload и обратный вызов JS-клиента onload и искать ваш элемент в зависимости от того, сколько секунд срабатывает.

1
добавлено
@isomeme, ваш подход должен работать нормально. Вам не нужно беспокоиться о состоянии гонки, потому что JavaScript однопоточный. Во второй раз, когда он запускается, вы можете быть уверены, что первый запуск уже завершен. Сказав это, моим предпочтительным подходом является повторная запись функции обратного вызова при первом запуске, а затем выполнить полезную работу во втором прогоне. Таким образом, нам не нужно управлять глобальной переменной для этой единственной цели. Вот пример: jsfiddle.net/MkpX4
добавлено автор Johnny Oshika, источник
Каков наилучший способ определить, на каком втором? Первая идея, которая приходит на ум, - это просто щелкнуть глобальное логическое значение, чтобы указать «кто-то уже побежал», а работа с dom работает в том случае, когда метод обнаруживает, что логическое значение уже истинно. Есть ли более чистый/лучший способ?
добавлено автор isomeme, источник
Насколько мне известно, этот подход работал отлично. Всегда трудно быть уверенным в условиях гонки.
добавлено автор isomeme, источник