Popstate, sans exécuter de nouveau la requête Ajax
Salut
J'ai un script jQuery pour modifier le contenu de la page en utilisant pushstate et l'Ajax.
En ce moment, il fonctionne très bien, mais quand je retour en arrière avec le bouton du navigateur, l'événement popstate exécuter de nouveau la requête Ajax.
Est-il possible de sauvegarder state et charger la vue précédente sans exécuter de nouveau la requête Ajax ?
Je l'ai lu sur e.originalEvent.state dans popstate, mais je ne sais pas si elle peut faire la même chose ou non.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
$(document).ready(function () {
function loadPage(route) {
$.ajax({
type: 'get',
dataType: 'html',
url: route,
success: function (msg) {
if (msg === undefined) {
alert('error');
} else {
$('#content').html(
$(msg).find('#content')
);
}
}
});
}
$(window).on("popstate", function () {
//L'appel de cette fonction va toujours exécuter à nouveau la requête Ajax
// mais je voudrais que la requête ajax ne soit pas exécuter à nouveau
loadPage(window.location.href);
});
$(document).on('click', ".load-ajax", function (e) {
e.preventDefault();
var route = $(this).attr('href');
window.history.pushState(null, "Title", route);
loadPage(route);
});
}); |
Merci d'avance