Question

Ainsi, par exemple, je clique sur un bouton qui va envoyer quelque chose à la base de données après 1 minutes, mais je veux l'envoyer aussi if I leave the page :)

Donc, si je quitte la page lorsque 30 secondes des 1 minutes, le compte à rebours se poursuivra jusqu'à atteint 60 secondes, puis envoie les données à la base de données.

L'espoir il est clair. Je pense que je devrais utiliser pour ce SESSION de mais s'il vous plaît laissez-moi savoir si vous connaissez la réponse, ou quoi que ce soit utile:)

exemple: sur http://www.travian.com/ , quand quand vous commencez à construire quelque chose , vous obtenez un compte à rebours « sera terminé dans xx: xx: xx »; mais vous n'avez pas besoin de garder le navigateur ouvert -. le compte à rebours tourne toujours sur le serveur, même si vous vous déconnectez

Ou disons, un exemple de la vie réelle:

Imaginez un système de blogs comme WordPress, où j'écrire des messages 10 par jour, mais je veux montrer aux utilisateurs que 5/day.

Ou je veux montrer aux utilisateurs à 8:00 A.M.

Ou une autre prise de Travian:

Imaginez un game où vous pouvez créer des troupes, mais pour créer des troupes dont vous avez besoin d'attendre parce que la vie est difficile. D, donc for a troop vous devez attendre 1 minutes

Était-ce utile?

La solution

Ceci est impossible. L'utilisateur peut quitter la page parce que leur connexion Internet a échoué ou parce qu'il ya une panne de courant , à quel moment, il n'y a aucun moyen de les envoyer les informations à la base de données.

Qu'est-ce que vous pouvez faire est de stocker les données dans la base de données immédiatement, avec un « ne pas ouvrir avant » horodatage pour simuler un délai d'une minute, et ajouter la contrainte supplémentaire à toutes les demandes contre cette table:

WHERE createDate < NOW()

Autres conseils

Peut-être que vous voulez utiliser une commande javascript pour lancer le retard, car avec Javascript vous pouvez envoyer des données à PHP via AJAX, et si vous encapsulez cette AJAX dans une fonction, puis appelez cela de votre fonction « retard ».

Pour la page que vous pouvez utiliser en laissant aussi:

window.onbeforeunload=delayFunction;

Hope this helps.

il n'y a aucune garantie pour cette action. Je peux laisser avec fermeture trop navigateur. Construire une solution axée sur base de données est le meilleur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top