Je n'ai pas écrit de code JS depuis longtemps et je n'ai rencontré qu'un tel problème. La plupart des formulaires de notre système ne sont pas effectués pour empêcher les soumissions en double.
Étant donné que vous ne voulez pas le traiter sur le backend, s'il est traité par le backend, vous devez donner une valeur de jeton unique lorsque la page est chargée. Non seulement il augmente la charge de travail de développement, mais il est également facile d'oublier de le faire. Dans le même temps, Ajax n'est pas facile à traiter. Si vous devez le soumettre, vous renverrez une nouvelle valeur de jeton en même temps.
Je veux donc le faire sur JS. En fait, je l'ai mentionné auparavant, mais il n'y avait pas de mouvement pendant longtemps, j'ai donc dû obtenir une brique et le jeter. L'idée est d'écraser $ .ajax et de résoudre le problème de la prévention des soumissions en double ici , tandis que le développement commercial frontal ne sera pas affecté, le code ne sera pas modifié et il n'y aura pas de perception.
Je pense que l'un des objectifs de l'architecture est de simplifier le développement commercial, de bloquer les détails indépendants de l'entreprise et de permettre au développement de première ligne d'écrire des affaires avec la tranquillité d'esprit.
Le code est le suivant:
/ *** Créé par Xiayongsheng le 2016/6/12. * /; (Fonction ($) {var ajax = $ .ajax; // requêtes utilisées pour stocker ajax var ajaxstate = {}; var kinhomajax = function () {var args = array.protototype.slice.call (arguments, 0); // les données url est conjointement, / le Url. OUT, les données doivent être triées par des valeurs clés, puis les valeurs sont épissées ensemble, et la valeur obtenue par SHA1 est utilisée comme empreinte digitale // Utilisation de l'URL comme empreinte digitale d'abord var [0] .url; if (typeof ajaxstate [hash]! == 'UNDEFINE {alert ('Veuillez ne pas soumettre à plusieurs reprises, la demande est en cours de traitement');} ++ ajaxstate [hash]; return $ .deferred ();} ajaxstate [hash] = 1; var def = ajax.apply ($, args); def.done (function () {delete ajaxstate [hash];}); kinhomajax;}) (jQuery);Ce qui précède est la connaissance pertinente sur la façon d'empêcher les soumissions répétées des demandes JS Ajax qui vous sont présentées. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!