javascript - Lors de l'inscription, le même utilisateur s'enregistre plusieurs fois et plusieurs éléments des mêmes données apparaissent dans la base de données. L'arrière-plan a été vérifié et le js frontal limite également la soumission une fois toutes les deux secondes, mais plusieurs éléments de données restent. apparaître.
世界只因有你
2017-06-30 09:52:16
Lors de l'inscription, le même utilisateur s'inscrit plusieurs fois et plusieurs éléments des mêmes données apparaissent dans la base de données. L'arrière-plan a été vérifié et le js frontal limite également la soumission une fois toutes les deux secondes, mais plusieurs éléments de données apparaissent toujours.
Le frontal peut définir le bouton d'enregistrement pour qu'il soit cliquable lors de l'accès à la page. Lorsque vous cliquez pour envoyer une demande d'enregistrement, le bouton d'enregistrement est d'abord configuré pour être non cliquable. Lorsque la demande revient et que l'enregistrement échoue, le bouton est configuré. défini pour être cliquable.
Utiliser un index unique comme limitation dans la base de données
Je ne sais pas si vous utilisez
debouce
还是throttle
pour limiter la soumission à deux secondesUne meilleure approche consiste à cliquer sur S'inscrire pour désactiver le bouton, à attendre le retour de la demande, puis à activer le bouton dans la fonction de rappel. N'oubliez pas d'activer le bouton S'inscrire dans le rappel qui signale une erreur
.Les champs de la base de données principale doivent également être indexés de manière unique
La vérification côté serveur nécessite un jugement d'unicité ; désactivez les clics après avoir cliqué sur le bouton frontal, attendez que le serveur revienne et débloque les clics, ou implémentez-la via un délai d'attente
L'inscription nécessite une vérification unique
Vérification unique de la clé primaire de la base de données et du nom d'utilisateur
Bien que la solution consistant à désactiver les boutons sur le front-end soit également nécessaire, elle empêche uniquement les utilisateurs ordinaires de cliquer plusieurs fois et ne peut pas empêcher les « utilisateurs » non-navigateurs.
Peu importe le nombre de requêtes répétées acceptées par le serveur, elles doivent être traitées par le backend
Objectif Le même utilisateur ne peut s'inscrire qu'une seule fois, se référer à d'autres réponses, clé primaire
Reportez-vous à mon article Comment empêcher les clients d'envoyer des requêtes répétées dans les projets Web