Я потратил очень много времени, пытаясь понять, почему .load в jQuery работает для меня очень странно. Я понятия не имею, что заставляет это иногда работать неправильно.
Я создаю пользовательский интерфейс, где пользователю не нужно перезагружать, а вместо этого всякий раз, когда они нажимают <a>
ссылка, она вызывает функцию JS, которая загружает содержимое URL в div «contentLoad».
Я учусь кодировать себя и JQuery & JS довольно смущает меня, поэтому я стараюсь сделать его максимально простым.
Ситуация: я использую простую функцию JS, которая берет URL (с локального FTP-сервера), проверяет, есть ли у URL какие-либо параметры (example.php? Abc = …), вставляет «? Includes = 1» за URL ( чтобы он не открывался, если он не вызван этой функцией) и помещает содержимое файла в пустой DIV с помощью .load (а также использует .load для отображения страницы загрузки).
Проблема в том, что он работает отлично, но каждые две минуты или около того он застревает на моем экране загрузки, и мне приходится либо снова запускать функцию, либо перезагружать ее целиком. Я понятия не имею, что не так.
Функция:
var loadPage = function(url) {
$("#contentLoad").load("loading.php");
if(url.indexOf("?")>=0){
$("#contentLoad").load(url + "&included=1");
}
else {
$("#contentLoad").load(url + "?included=1");
}
window.history.replaceState('Object', 'Title', url);
}
Затем, когда я хочу иметь <a>
который открывает страницу «explore.php», например, я использую
<li><a href="#" onclick="loadPage('explore.php')">Explore</a></li>
,
Что я могу делать не так?
Хорошо, я действительно не знаю, как это работает, но я полагаю, что два типа .loads «заблокировали друг друга», потому что теперь, когда я удалил .load страницы загрузки, все работает … Ух, ха-ха.
Так что мое решение было просто заменить
$("#contentLoad").load("loading.php");
с
document.getElementById("contentLoad").innerHTML = 'loading...';
Спасибо вам, ребята, за помощь! 🙂
Других решений пока нет …