کلیک کاربر بر روی ثبت به صورت تکراری و سریع
سلام و عرض ادب
من شبیه به آموزش سیستم انبارداری دارو کار میکنم و زیر ساختم کاملا شبیه آموزش هست
حالا مشکل اینجاست با توجه به اینکه تمامی عملیات ها به صورت وب سرویسی هست و اکثر دستورات از اضافه و حذف و ویرایش با ajax و ارسال توکن انجام میشه و عملیات های وب سرویس خیلی زیاد و یکم زمان میبره
مثلا یکی از وب سرویس ها زمانی که میخوان اطلاعاتی رو insert کنن کلی محاسبه انجام میده و چند تا اس ام اس با وب سرویس زده میشه وبعد اطلاعات insert میشه
حالا توی انجام فرایند بالا ممکنه 2 ثانیه زمان ببره
توی همون 2 ثانیه کاربر سریعا چند بار کلیک میکنه و وب سرویس چند بار پشت سر هم اجرا میشه
حالا شاید بگین خب دکمه رو با js بعد از کلیک مخفی کنم ، اینکار رو هم کردن یا این که با دستورات entity کاربر رو محدود کنم ، اینکار رو هم کردم ولی دستور قبلی انجام نشده دستور جدید انجام فراخوانی میشه
حالا چیکار کنم کاربر محدود بشه و نتونه چند بار وب سرویس رو فرا بخونه ؟ یا رکورد تکراری ایجاد نکنه
پاسخ هوش مصنوعی
برای جلوگیری از کلیک های تکراری و سریع کاربر بر روی دکمه ثبت، می توان از چند روش استفاده کرد. یکی از این روش ها غیرفعال کردن دکمه پس از اولین کلیک است. در زیر نمونه کدی برای این منظور وجود دارد:
document.getElementById('submitButton').addEventListener('click', function() {
// غیرفعال کردن دکمه
this.disabled = true;
// انجام عملیات AJAX یا فراخوانی وب سرویس
// ...
// بعد از اتمام، می توانید دکمه را دوباره فعال کنید (بر اساس نیاز)
// this.disabled = false;
});
علاوه بر این، شما می توانید در سمت سرور نیز کنترل هایی برای بررسی رکوردهای تکراری اضافه کنید. به عنوان مثال، می توانید از یک شناسه منحصر به فرد یا زمان سنج استفاده کنید تا فرآیند سرور را کنترل کنید و از پردازش درخواست های تکراری جلوگیری کنید.
سلام میتونین فرم رو بعد از ارسال غیر فعال کنید
<form id="myForm" onsubmit="disableSubmit()">
<button type="submit" id="submitBtn">ثبت</button>
</form>
<script>
function disableSubmit() {
document.getElementById("submitBtn").disabled = true;
}
</script>
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2