У меня есть веб-сайт, где на главной странице есть раздел контента, и контент переключается с помощью ajax.Каждый раз, когда я переключаюсь между разными страницами, мне кажется, что ajax продолжает удваивать количество запросов.Вот код, управляющий переключением страниц:
$(document).on('click','#sideNav a',function(e){
e.preventDefault();
var url = $(this).attr('href'); //get the link you want to load data from
$.ajax({
type: 'GET',
url: url,
success: function(data) {
$("#content").empty();
$("#content").html(data);
}
});
//window.history.pushState('object', 'New Title', url);
});
});
Теперь допустим, что я переключаюсь на свою страницу шаблонов, где она отображает созданные шаблоны и позволяет мне создавать шаблоны.
Теперь, когда я в первый раз переключаюсь на эту страницу и создаю новый шаблон, все в порядке, одно сообщение отправляется в php, а одно новое - в базу данных.Теперь, если я переключаюсь между страницами и возвращаюсь на свою страницу шаблонов и создаю новый шаблон, только в этот раз ajax делает две записи в php и делает две записи в базе данных, теперь, если я делаю это еще раз, 4 сообщения безумны и так далее.
Это происходит с каждой функцией, которая использует ajax.Этого не происходит, когда я захожу на страницу шаблонов отдельно, а не через главную страницу с содержимым div, поэтому я подозреваю, что что-то не так с тем, как я переключаю страницы.
Редактировать: на самом деле он не удваивается, а добавляет один запрос каждый раз.
ОБНОВЛЕНИЕ Каким-то образом я это исправил, не совсем точно как, но вот что я сделал:Я добавил .off('click','#sideNav a')
к своей функции и также поместил функцию в отдельный файл .js.Я чувствую, как будто он снова загружал скрипт, опять же не совсем уверен, что именно это исправило, надеюсь, это кому-нибудь поможет.