Saya sudah lama tidak menulis kode JS dan hanya mengalami masalah seperti itu. Sebagian besar bentuk dalam sistem kami tidak dilakukan untuk mencegah pengiriman duplikat.
Karena Anda tidak ingin memprosesnya di backend, jika diproses oleh backend, Anda perlu memberikan nilai token satu kali ketika halaman dimuat. Tidak hanya meningkatkan beban kerja pengembangan, juga mudah untuk lupa melakukan ini. Pada saat yang sama, Ajax tidak mudah diproses. Jika Anda perlu mengirimkannya, Anda akan mengembalikan nilai token baru secara bersamaan.
Jadi saya ingin melakukannya di JS. Bahkan, saya menyebutkannya di ujung depan sebelumnya, tetapi tidak ada gerakan untuk waktu yang lama, jadi saya harus mendapatkan batu bata dan membuangnya. Idenya adalah untuk menimpa $. AJAX, dan menyelesaikan masalah mencegah pengiriman duplikat di sini , sementara pengembangan bisnis front-end tidak akan terpengaruh, kode tidak akan diubah, dan tidak akan ada persepsi.
Saya pikir salah satu tujuan arsitektur adalah untuk menyederhanakan pengembangan bisnis, memblokir detail yang tidak tergantung pada bisnis, dan memungkinkan pengembangan garis depan untuk menulis bisnis dengan ketenangan pikiran.
Kodenya adalah sebagai berikut:
/*** Dibuat oleh Xiayongsheng pada 2016/6/12.*/; (Function ($) {var Ajax = $ .Ajax; // Permintaan yang digunakan untuk menyimpan AJAX VAR AJAXState = {}; var Kinhomax = function () {var args = array.prototype.slice.call.call () {var args = array.prototype.slice.call.call () {var args = array.prototype.slice.call.call (arguments) {var args = array.prototype.slice.cal Keluar, data harus diurutkan berdasarkan nilai -nilai kunci, dan kemudian nilainya disambung bersama, dan nilai yang diperoleh oleh SHA1 digunakan sebagai sidik jari // menggunakan url sebagai sidik jari pertama var hash = typeof args [0] === 'string'? args [0]: args [0] .url; if (typeOf ajaxstate [hash]! {alert ('Tolong jangan mengirimkan berulang kali, permintaan sedang diproses');} ++ ajaxState [hash]; return $ .deferred ();} AjaxState [hash] = 1; var def = ajax.Amply ($, args); def.done (function () {hapus ajaxstate [hash] hash]; Def.done (function () {hapus ajaxState [hash] hash]; Kinhomajax;}) (jQuery);Di atas adalah pengetahuan yang relevan tentang cara mencegah pengiriman berulang dari permintaan JS AJAX yang diperkenalkan kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!