2010-10-12 5 views
0

J'essaie d'utiliser le jQuery Countown plugin pour laisser à mes utilisateurs le temps qu'il leur reste pour une certaine tâche. Donc, j'utilise le code suivant pour démarrer le compte à rebours avec 30 minutes.Rendre le code jQuery statique pour différentes pages

<script type="text/javascript"> 
$(function() { 
$('#defaultCountdown').countdown({until: '+30m'}); 
}); 
</script> 

Le problème est que les utilisateurs vont être naviguer vers Diffrent pages pour une tâche donnée, et si j'inclure tout ce code sur toutes les pages de la minuterie partiraient 30 minutes chaque fois qu'un utilisateur va une nouvelle page ou actualise l'actuelle. Je suis nouveau sur jQuery et j'aimerais savoir s'il existe un moyen de rendre ce code statique pour qu'il commence après un événement donné (sur une page) et est et s'arrête lorsqu'un événement sur une autre page s'est produit?

EDIT: Je dois mentionner que le compte à rebours ne sera utilisé que pour un test d'utilisabilité dans un environnement contrôlé, de sorte que l'application ne sera exécutée que sur un seul ordinateur.

Merci!

Répondre

2

Solution côté client:
Au lieu de compter jusqu'à un instant relatif, comptez jusqu'à un temps absolu et stockez-le dans un cookie.
Chaque page peut rechercher la valeur et démarrer le temporisateur.

+0

merci pour la solution agréable et simple. – woolagaroo

1

Ce n'est pas possible à moins qu'un mécanisme de synchronisation est fourni:

  • Chaque page passe à l'autre le temps restant dans la chaîne de requête. Le code d'initialisation doit être modifié afin de démarrer le compte à rebours à partir du paramètre reçu.
  • Chaque page affiche le temps restant sur le serveur. Ceci est plus difficile à implémenter car il nécessite une couche de rétention dans le serveur.

Ce qui se passe généralement est d'avoir le compte à rebours dans un onglet/fenêtre et ouvrir les autres pages dans les nouveaux. Vous pouvez demander à l'utilisateur de ne pas fermer la fenêtre d'origine.

+0

Merci pour votre réponse! C'est ce que je fais maintenant, bien en quelque sorte ... Je montre le compte à rebours dans une fenêtre pop-up qui reste toujours en haut et exécute le script là ... Je pensais juste que ce serait beaucoup plus agréable de l'inclure dans l'onglet réel. – woolagaroo

1

Je vois trois solutions:
1) Donner l'heure de démarrage du côté serveur.
2) Chargez les autres pages avec AJAX, donc la page ne sera pas rafraîchie
3) Utilisez des cadres (le pire choix).

Questions connexes