Я создал сценарий ajax, который вызывает страницу, заданную в div #container
, поэтому, если я вызываю страницу project.html, запрос работает хорошо, вызывая страницу и $getscript
ассоциировать, но если я пытаюсь перезвонить мою домашнюю страницу запросы являются дубликатом:Ajax request duplicate на странице call back
Существует мой PHP функция:
<?php $d="pages/" ; if(isset($_GET[ 'p'])){ $p=strtolower($_GET[ 'p']); if(preg_match("/^[a-z0-9\-]+$/",$p) && file_exists($d.$p. ".html")){ include $d.$p. ".html"; } else{ include $d. "404.html"; } } else{ include $d. "home.html"; } ?>
и это мой Аякса запрос:
var afficher = function(data, page) {
$('#container').fadeOut(500, function() {
$('#container').empty();
$('#container').append(data);
\t \t
$('#container').fadeIn(100, function() {});
});
};
var loadPage = function(page, storeHistory) {
if (typeof storeHistory === 'undefined') {
storeHistory = true;
}
$.ajax({
url: 'pages/' + page,
cache: false,
success: function(html) {
afficher(html, page);
if (storeHistory === true) {
history.pushState({
'key': 'value',
'url': page
}, '', page);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
afficher('erreur lors du chagement de la page');
}
});
return false;
};
window.addEventListener('load', function() {
setTimeout(function() {
window.addEventListener('popstate', function(e) {
if (e.state === null) {
loadPage('home.html');
} else {
loadPage(e['state']['url'], false);
}
});
}, 0);
});
$(document).ready(function() {
\t $('.project a').on('click', function(e) {
var page = $(this).attr('href');
loadPage(page);
return false;
});
\t $('#menu a').on('click', function() {
var page = $(this).attr('href');
loadPage(page);
return false;
});
});
Как я могу решить эту проблему множественного запроса, когда я называю мою домашнюю страницу?
, который работает для первого вызова ajax, но проблема возвращается – Tiaw
Проблема возникает даже после отмены? –
да проблема идет – Tiaw