Есть следующий скрипт.
Он должен обновлять ВСЮ страницу, но не перезагружая ее в браузере.
<script src="../themes/jquery-3.6.3.min.js"></script>
</head><body>
<script>
$(document).on("click", "a", function(evt) {
evt.preventDefault();
var redirect_url = $(this).attr('href');
$.ajax({
url: redirect_url,
cache: false,
dataType: 'html',
async: false,
success: function(responce) {
// Если доступен API истории
if (!(typeof history.pushState === 'undefined')) {
history.pushState({
url: redirect_url,
title: document.title
},
document.title,
redirect_url
);
}
$('#content').html(responce);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR, textStatus, errorThrown);
}
});
return false; //что бы не выполнять переход дефолтный
});
</script>
<div id="content">
......
</div>
Но как это прописать? Везде примеры только с DIV элементом внутри которого происходит обновление.
Я DIV поместил в страницу после скрипта и подключения jquery
Но что происходит: с каждой новой открытой страницей начинает происходить рекурсия
То есть загружается Index, затем внешние подключения библиотек и срабатывание скрипта.
Снова загружается Index, затем внешние подключения библиотек и срабатывание скрипта.
И таким образом, при каждой новом обновлении по ссылке количество одинаковых запросов растет. Как будто страница вызывает сама себя из DIV элемента. И затем это происходит снова.
Я даже отключил асинхронное обновление, не помогло.
Как сделать так что бы просто обновлялась страница и все GET запросы срабатывали всего 1 раз?