javascript — jQuery .load работает случайно, отчаянно

Я потратил очень много времени, пытаясь понять, почему .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>,

Что я могу делать не так?

3

Решение

Хорошо, я действительно не знаю, как это работает, но я полагаю, что два типа .loads «заблокировали друг друга», потому что теперь, когда я удалил .load страницы загрузки, все работает … Ух, ха-ха.

Так что мое решение было просто заменить

$("#contentLoad").load("loading.php");

с

document.getElementById("contentLoad").innerHTML = 'loading...';

Спасибо вам, ребята, за помощь! 🙂

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]