Heim > Artikel > Backend-Entwicklung > javascript - Wie lösche ich Bilder, die mehrmals über Ajax hochgeladen wurden? ?
Derzeit besteht meine Programmeinstellung darin, den Avatar mit Ajax im Frontend zu ändern und das geänderte Bild dann in das Backend hochzuladen.
Schließlich wurde festgestellt, dass das Bild mehrmals hochgeladen wird, wenn der Benutzer mehrmals auf die Schaltfläche „Hochladen“ klickt. Unbequem zu löschen.
Liebe Meister, habt ihr gute Vorschläge?
Derzeit besteht meine Programmeinstellung darin, den Avatar mit Ajax im Frontend zu ändern und das geänderte Bild dann im Backend hochzuladen.
Schließlich wurde festgestellt, dass das Bild mehrmals hochgeladen wird, wenn der Benutzer mehrmals auf die Schaltfläche „Hochladen“ klickt. Unbequem zu löschen.
Liebe Meister, habt ihr gute Vorschläge?
Blockieren Sie während des Hochladens die Schaltfläche zum Hochladen
<code>beforeSend: function () { // 禁用按钮防止重复提交 $("#submit").attr({ disabled: "disabled" }); } </code>
Nutze einfach profitSend. . .
<code>$.ajax({ type: "", data: "", dataType: "", url: "", beforeSend: function () { // 禁用按钮防止重复提交 $("#submit").attr({ disabled: "disabled" }); }, success: function (data) { }, complete: function () { $("#submit").removeAttr("disabled"); }, error: function (data) { } });</code>
Der Benutzer lädt einen Avatar hoch und der Name des hochgeladenen Avatars kann „Benutzer_Benutzer-ID“ sein. Bei jedem Hochladen auf den Server wird das Originalbild entsprechend dem Namen gelöscht.
Vorschläge zur Optimierung dieser Art von Details:
Holen Sie sich das Bild und klicken Sie auf „Hochladen“, um mit dem Hochladen zu beginnen
Jedes Mal, wenn Sie ein Bild erhalten, können Sie 文件名 时间
in einer Variablen speichern. Wenn der Benutzer mehrmals auf „Upload“ klickt, vergleichen Sie 文件名 时间
mit der Variablen. Wenn sie konsistent sind, wird die Anfrage nicht ausgeführt verarbeitet (Es gibt zu wenige Fälle, in denen die Zeit des Benutzerdateinamens konsistent ist und eine weitere Fehlertoleranzverarbeitung hier weggelassen werden kann)
Wenn festgestellt wird, dass die Bilder inkonsistent sind und die erste Anfrage nicht unterbrochen wurde, ajax abort
lassen Sie die Anfrage fallen und starten Sie einen zweiten Upload