2010-03-09 5 views
0

Je développe une application eshop. J'utilise webservice pour créer une base de données Order in Oracle et websvc va donner une réponse (OrderNumber) et je vais informer le client que sa commande (OrderNumber) est générée Mon problème La création de commande prend trop de temps dans le système backend et l'utilisateur rafraîchit la page, à chaque actualisation, l'utilisateur revient à la commande Créer une page, afin que l'utilisateur puisse cliquer à nouveau sur le bouton Créer une commande. Dans ce cas, plusieurs commandes sont créées pour les mêmes lignes de commande. Je peux limiter l'utilisateur à créer une seule commande par session au cas où j'ai reçu le numéro de commande dans la réponse websvc et que je peux donner le numéro de commande au client dans la page suivante Mais le vrai problème vient quand je n'ai pas reçu de réponse (Ordernumber) et que l'utilisateur est rafraichissant. demande est déjà allé à Backend système et il va créer de l'ordre et mon applicaion ne recevra pas de réponseDemande PHP asynchrone (pas AJAX)

Y at-il une méthode en PHP où nous pouvons vérifier de manière asynchrone le statut de l'ordre si la première demande est initiée par l'utilisateur et il ne la page matière furthur navigation S'il vous plaît, aidez-moi .. Merci à l'avance

+3

les iframes cachés? –

+0

Cela ne fonctionnera pas ... si l'utilisateur actualise la page .. iframe va aussi rafraîchir –

Répondre

1

Ce que vous pouvez faire ici est de mettre un drapeau dans la base de données pour fournir des informations de l'utilisateur (par exemple, l'utilisateur-ip-info, submit- statut). Au chargement de la page, vous pouvez mettre une coche pour ce drapeau et en fonction de cela activer/désactiver le bouton Créer une commande. Faites-moi savoir si vous avez besoin de plus de détails.

pinaki

+0

+1, Peut être en mesure de définir une référence var dans SESSION et accomplir la même chose sans une requête, aussi .. mais fondamentalement la même approche . –

+0

Oui, vous avez raison ... mais j'utilise Webservice depuis une application middleware pour créer une commande, ce service web est responsable de la création d'une commande. J'ai donc besoin d'attendre la réponse du webservice .. si je n'ai pas reçu de réponse la page Order sera créée et mon application ne recevra pas le numéro de commande donc elle donnera l'option de créer à nouveau la commande :( Iwant quelque chose comme php besoin de faire une connexion persistante à webservice jusqu'à ce qu'il obtienne une réponse et l'actualisation de la page ne devrait pas affecter la connexion persistante –

+0

Vous ne pouvez pas arrêter l'actualisation de la page car l'utilisateur peut de toute façon tuer le navigateur et redémarrer.Ce que je suggère est de laisser l'utilisateur actualiser la page, mais ajouter une couche de vérification (en utilisant la base de données). actualisation de la requête webservice.Ainsi, jusqu'à ce que la première requête soit terminée à partir de l'adresse IP donnée, vous n'autorisez pas un autre webservice crée une commande. Je suppose que cela devrait régler votre problème. Dis moi ce que tu penses. – pinaki