Вопрос

Я пытаюсь настроить свой сайт таким образом, чтобы контент в основной области загружался через javascript (отображение некоторых страниц занимает некоторое время). Однако при использовании jQuery.load (), jQuery.getScript и jQuery.ajax () я столкнулся с небольшой логической проблемой.

Мне нужно иметь возможность загружать определенные файлы javascript через getScript, чтобы я мог использовать эти функции и т. д. внутри загруженного содержимого.

  • index.php - основной отображаемый файл (также содержит #loading).
  • js / script.js - файл, содержащий код загрузки.
  • js / *. js - несколько файлов javascript, которые мне нужно использовать внутри #maincontent после загрузки.
  • load.php - файл, загружаемый в #maincontent

script.js:

родовое слово

Как видите, я сначала пытаюсь загрузить load.php без каких-либо параметров URL и какого-либо взаимодействия с пользователем. Хотя load.php каждый раз загружается правильно, этого нельзя сказать о коде javascript. Иногда это работает, иногда мне нужно обновить страницу несколько раз, прежде чем я получу чистую консоль (без ошибок).

Ошибки в консоли подсказывают мне, что код js не загружается должным образом до того, как он будет использован внутри load.php. Это особенно верно, если load.php занимает некоторое время (проверено с помощью функции PHP sleep (5)).

Дайте мне знать, если мне нужно что-то уточнить :)

Это было полезно?

Решение

Не стоит загружать все эти скрипты с помощью getScript.Вам будут нужны некоторые (или все?) Из них каждый раз, так почему бы просто не включить их на страницу.Кроме того, поскольку вы используете jquery для загрузки jquery, я скажу, что вы уже включили его на страницу.Так что не пытайтесь загрузить его снова.

Другие советы

Если проблема заключается в сроках загрузки, вам следует рассмотреть возможность использования последней версии jQuery с отложенным поведением.

Вы можете, например, сделать:

родовое слово

Это будет ждать, пока все вызовы getScript не вернутся, а затем выполнить вызов ajax для load.php (или он вызовет handleErrorsFunction (), если один из вышеперечисленных отказов).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top