2009-11-07 5 views
1

Je crée une div dynamique à l'aide Jquery et je suis en train de le mettre en cache afin que, je le récupérer après l'actualisation de la page, s'il vous plaît aider sur la façon d'y parvenir,comment conserver le contenu div après rafraîchir la page

coller le code ci-dessous

<script src="jquery-1.3.2.js" type="text/javascript"></script> 
<script src="jQuery.jCache.js" type="text/javascript"></script> 
<script type="text/javascript" language="javascript"> 
    $.jCache.maxSize = 20; 
    function createDiv() { 

     var divTemp = "<div><label>This is a Label</Label></div>"; 
     alert(divTemp); 
     $(divTemp).appendTo("#divDisplay"); 
     $.jCache.setItem("myKey", divTemp); 
    } 

    $(document).ready(function() { 


    if ($.jCache.hasItem("myKey")) { 
     var cacheDiv = $.jCache.getItem("myKey"); 
      var cacheDiv = cacheDiv + "<a>anchor Tag</a>"; 
      $(cacheDiv).appendTo("#divDisplay"); 

     } 
    }); 
</script> 

J'essaie de dessiner un div dans la page en cliquant sur le bouton, après le div clic est dessiné dans la page, quand il est actualisé en utilisant un clic F5, le div disparaît, est-il possible de conserver le contenu div ?

cela a été un showstopper pour toute ma fonctionnalité!

Merci à l'avance, shajo

Répondre

3

Le meilleur pari serait de garder une trace du côté du serveur de contenu div. De cette façon, chaque fois que l'utilisateur met à jour le contenu de la div, un appel AJAX peut être effectué en mettant à jour la représentation côté serveur de la div.

Lorsque la page est chargée pour la première fois, votre serveur peut préremplir la div. Il semble alors que la page conserve le contenu de la div après un rechargement.

Ce type de fonctionnalité est utilisé dans de nombreux sites maintenant, donc je suis sûr que cela peut fonctionner pour votre scénario. Regardez ce site (SO). Lorsque vous votez, vous modifiez essentiellement quelque chose sur le navigateur, la couleur de la flèche de vote. Si vous actualisez après que la couleur ne soit pas rétablie, elle se souvient en quelque sorte que vous avez voté. C'est parce que lorsque vous cliquez sur la flèche de vote, un appel AJAX est fait et le fait que vous avez voté est enregistré sur le serveur.

6

Vous pouvez être mal compris la nature façon dont fonctionne JCache. Le cache est effectivement effacé chaque fois que vous (re) chargez la page, car le navigateur créera un nouvel environnement d'exécution JavaScript. Ce comportement du navigateur est logique, car il empêche JS sur différents sites Web d'interagir les uns avec les autres, ce qui crée une grande faille de sécurité. Si vous jouez avec le jCache demo, vous pouvez tester ce comportement en remplissant le cache de démonstration, en rechargeant la page et en notant que le cache est emtpy. En ce qui concerne votre application particulière, vous devrez (re) la concevoir de telle sorte qu'un rechargement ne soit pas nécessaire. C'est vraiment tout le point de l'Ajax. Je doute sérieusement que ce soit un bouchon de spectacle pour vous. Dans le pire des cas, vous devriez pouvoir régénérer la div dynamique lorsque l'utilisateur recharge la page. Si vous avez besoin de vous rappeler un état afin de régénérer la div, les cookies peuvent fonctionner pour vous.

Questions connexes