Maison >interface Web >js tutoriel >Comment puis-je conserver les variables lors des chargements de pages dans un environnement HTTP sans état ?
Variables persistantes entre les chargements de page
HTTP étant sans état, la conservation des valeurs lors des rechargements de page nécessite un stockage externe. Voici comment surmonter cette limitation :
Chaîne de requête
Lors de la soumission du formulaire via GET, la chaîne de requête (?parameter=value) contient les données du champ du formulaire. Définissez la valeur d'un champ masqué en conséquence :
<form method="GET"> <input type="hidden" name="clicked" value="true" /> <input type="submit" /> </form>
Au chargement de la page, extrayez le paramètre de requête :
function getParameterByName(name) { var regex = new RegExp("[\?&]" + name + "=([^&#]*)"), results = regex.exec(location.search); return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); } var clicked = getParameterByName('clicked');
Stockage Web
HTML5 fournit Stockage Web, permettant le stockage de données basé sur un navigateur. SessionStorage stocke les données uniquement pendant la session de navigation en cours :
sessionStorage.setItem('clicked', 'true');
Au chargement de la page, récupérez la valeur stockée :
var clicked = sessionStorage.getItem('clicked');
Cookies
Les cookies sont principalement utilisés pour le stockage de données côté serveur, mais peuvent également être exploités pour le stockage côté client. jQuery simplifie la gestion des cookies :
$.cookie('clicked', 'true', {expires: 1}); // expires in 1 day
Pour lire le cookie au chargement de la page :
var clicked = $.cookie('clicked');
N'oubliez pas de désactiver le cookie lorsqu'il n'est plus nécessaire :
$.cookie('clicked', null);
Window.name
Bien que cela ne soit pas recommandé, window.name peut stocker des chaînes sur toute la page rafraîchissements et même domaines :
window.name = "my value";
Au chargement de la page, accédez à la valeur stockée :
var value = window.name;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!