Fonction de pénalité lorsque le compte à rebours est à 0. Dans un cas, lorsque les quatre comptes à rebours sont à 0, la méthode ajax() sera déclenchée en même temps. Dans ce cas, je ne souhaite la déclencher qu'une seule fois.
J'ai essayé de déclarer un décompte, et la méthode ajax() ne sera pas exécutée si elle dépasse 1, mais cela risque de ne pas exécuter le compte à rebours suivant car elle ne satisfait pas à la logique selon laquelle le décompte ne dépasse pas 1. Que devrait Je fais?
html
<span class="clock">4:00</span>//倒计时是循环的,到0后恢复为4分钟,其他一样
<span class="clock">3:00</span>
<span class="clock">2:00</span>
<span class="clock">1:00</span>
js
$('.clock').each(function(elem,index){
$(this).on('finish',function(){//倒计时为0时触发ajax()方法
ajax();
});
});
JS est monothread, il ne sera donc pas déclenché en même temps. Vous pouvez conserver une variable pour enregistrer l'heure à laquelle la fonction a été exécutée pour la dernière fois. Si l'intervalle est trop proche, elle ne sera pas exécutée une seconde fois.
Définissez une variable comme statut de la demande. La valeur par défaut est false, ce qui signifie qu'il n'y a actuellement aucune demande, déterminez si elle est vraie. Si c'est le cas, cela signifie que la dernière demande ne continue pas. définissez-le sur true et commencez à exécuter la méthode complète d'Ajax Set pour restaurer le statut sur false quel que soit le succès ou l'échec afin qu'il soit disponible pour la prochaine requête. Autrement dit, utilisez une variable globale ou locale pour contrôler l'état.
Essayez ceci :