Я выполняю междоменный вызов JSON (P), используя JavaScript для добавления тега <script>
в DOM с тем URL-адресом, который я хочу включить в качестве src
.Загружаемый скрипт имеет функцию обратного вызова, которая вызывает функцию на моей странице, и нужные мне данные возвращаются в качестве аргумента функции.
Хотя есть 2 перехвата:
- Иногда страница JSONP возвращает ошибку 400 или 404.
- Один и тот же файл JSONP можно запрашивать несколько раз на одной странице (каждый раз возвращая разные данные)
Итак,Мне нужно определить, когда функция обратного вызова не запущена (что указывает на то, что файл JSONP вернул ошибку), но мне также необходимо учитывать тот факт, что один и тот же файл может быть запрошен дважды.По сути, мне нужно обнаружить ошибку при загрузке страницы, но я должен сделать это до завершения загрузки других файлов.И да, файлы должны быть загружены (или возвращать ошибку) в правильном порядке.
Одно (неэффективное) решение:
Я мог бы сделать кучу разныхфункции, которые запрашиваются для каждой отдельной загрузки файла (например, callbackFunction0, callbackFunction1 и т. д.).Таким образом, я могу просто определить, когда одна из функций не сработала, и мой JavaScript отключился.Однако, это заняло бы много места и было бы неэффективно, потому что мне потребовалась бы одна функция callbackFunction для максимального времени загрузки скрипта на той же странице (хотя это число не имеет определенного значения, поэтому, если бы я только сделал 15функции и сценарий запрашивался 20 раз, при этом возникали ошибки).
Это было довольно сложно объяснить, но, надеюсь, вы поняли идею.Спасибо.