problème d'appel ajax en asynchrone
1 message
• Page 1 sur 1
problème d'appel ajax en asynchrone
Suite à mes modifs (voir mes post précédents), je me suis retrouvé deux fois (sur environ 60 commandes) avec des commandes en doubles.
Après inspection des sources originales (version 1.5.4.1 et 1.5.5.1), je me rends compte que tous les appels ajax d'opencart sont en asynchrone (sauf qq'uns interne à jquery ou au ckeditor) et que ça génère à certains endroits des effets de bords (non détectés par la communauté ?!)
Un exemple facile, dans le module de payment à la livraison (duquel j'étais parti pour faire mon module de choix de dépot) cod.php et cod.tpl
Si vous tracez les appels à catalog_controler_payment_cod->confirm et catalog_model_payment_cod->confirm et que vous cliquez "nerveusement" deux fois sur le bouton "confirmer commande" de l'étape 6 finale, les deux methodes confirm (controler et model) sont appelé 2 fois !!!!
Il faut dans le fichier catalog/view/theme/xxx/template/default/payment/cod.tpl ajouter l'option "async: false"
Tout nouvel utilisateur d'opencart, ce genre de découverte ne me rassure pas (pour moi, qu'il n'y ai aucun appel ajax synchrone dans opencart, ça me semble pas normal, je découvre cet effet de bord grace à deux clients nerveux, ça va m'obliger à regarder l'ensemble des templates en détail)
Le fait aussi, que personne dans la communauté, s'inquietent non plus de l'absence de transactions SQL, ne me rassure pas non plus ! (en 2013, pas de transactions et du MyIsam)
Après inspection des sources originales (version 1.5.4.1 et 1.5.5.1), je me rends compte que tous les appels ajax d'opencart sont en asynchrone (sauf qq'uns interne à jquery ou au ckeditor) et que ça génère à certains endroits des effets de bords (non détectés par la communauté ?!)
Un exemple facile, dans le module de payment à la livraison (duquel j'étais parti pour faire mon module de choix de dépot) cod.php et cod.tpl
Si vous tracez les appels à catalog_controler_payment_cod->confirm et catalog_model_payment_cod->confirm et que vous cliquez "nerveusement" deux fois sur le bouton "confirmer commande" de l'étape 6 finale, les deux methodes confirm (controler et model) sont appelé 2 fois !!!!
Il faut dans le fichier catalog/view/theme/xxx/template/default/payment/cod.tpl ajouter l'option "async: false"
Tout nouvel utilisateur d'opencart, ce genre de découverte ne me rassure pas (pour moi, qu'il n'y ai aucun appel ajax synchrone dans opencart, ça me semble pas normal, je découvre cet effet de bord grace à deux clients nerveux, ça va m'obliger à regarder l'ensemble des templates en détail)
Le fait aussi, que personne dans la communauté, s'inquietent non plus de l'absence de transactions SQL, ne me rassure pas non plus ! (en 2013, pas de transactions et du MyIsam)
OpenCart v1.5.4.1-FR
vQmod v2.3.2
PHP v5.3 - Linux
vQmod v2.3.2
PHP v5.3 - Linux
- gem56
- Messages: 14
- Inscrit le: 09 Mars 2013, 20:24
1 message
• Page 1 sur 1
Qui est en ligne ?
Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité