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
Barbara Streisandoriginal
2024-12-24 09:39:13390parcourir

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>

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');

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!

Déclaration:
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