Maison > interface Web > js tutoriel > Comment puis-je conserver les variables lors des chargements de pages dans un environnement HTTP sans état ?

Comment puis-je conserver les variables lors des chargements de pages dans un environnement HTTP sans état ?

Barbara Streisand
Libérer: 2024-12-24 09:39:13
original
425 Les gens l'ont consulté

How Can I Persist Variables Across Page Loads in a Stateless HTTP Environment?

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>
Copier après la connexion

Au chargement de la page, extrayez le paramètre de requête :

function getParameterByName(name) {
    var regex = new RegExp("[\?&amp;]" + name + "=([^&amp;#]*)"),
        results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

var clicked = getParameterByName('clicked');
Copier après la connexion

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');
Copier après la connexion

Au chargement de la page, récupérez la valeur stockée :

var clicked = sessionStorage.getItem('clicked');
Copier après la connexion

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
Copier après la connexion

Pour lire le cookie au chargement de la page :

var clicked = $.cookie('clicked');
Copier après la connexion

N'oubliez pas de désactiver le cookie lorsqu'il n'est plus nécessaire :

$.cookie('clicked', null);
Copier après la connexion

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";
Copier après la connexion

Au chargement de la page, accédez à la valeur stockée :

var value = window.name;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal