بستن صفحه یا قطع درخواست مرورگر الزاماً پردازش پسزمینه را متوقف نمیکند. کار ممکن است هنوز توکن مصرف کند، فایل بسازد یا ابزار را اجرا کند. لغو واقعی به قرارداد بین مرورگر، سرور، صف و کارگر نیاز دارد و باید مشخص کند چه اثرهایی هنوز قابل توقفاند.
روش اجرا و تصمیمگیری
هر کار یک شناسه و وضعیت معتبر سمت سرور داشته باشد. درخواست لغو باید با مالکیت کار کنترل شود تا فرد نتواند کار دیگران را متوقف کند. سرور وضعیت لغوخواسته را ثبت میکند و کارگر در نقطههای امن آن را میخواند. وضعیت لغوشده فقط پس از توقف واقعی یا تصمیم نهایی ثبت شود.
میان کار در صف و کار در حال اجرا تفاوت بگذارید. کار صف را میتوان پیش از شروع کنار گذاشت؛ کار فعال ممکن است نیاز به سیگنال لغو سرویس بیرونی داشته باشد. اگر سرویس توقف را پشتیبانی نمیکند، مصرف و اثر احتمالی باقیمانده را به کاربر صادقانه توضیح دهید.
برای اقدامهای غیرقابل بازگشت، نقطه تعهد تعریف کنید. اگر عملیات قبلاً انجام شده، لغو رابط آن را خنثی نمیکند. مسیر برگشت احتمالی باید مجوز و روال جدا داشته باشد. فایل نیمهکاره و داده موقت نیز پس از لغو طبق سیاست نگهداری پاک یا محدود شوند.
نمونهٔ ساختگی و قابل تکرار
در مثال ساختگی، کار تبدیل یک سند در صف است و کاربر لغو میزند؛ کارگر نباید آن را شروع کند. در آزمون دوم پردازش آغاز شده و کارگر بین دو بخش سند سیگنال لغو را میبیند؛ خروجی ناقص با برچسب مناسب نگه داشته یا حذف میشود. در آزمون سوم ثبت بیاثر نهایی انجام شده و سپس لغو رسیده است؛ وضعیت «پایان یافته پیش از لغو» از «لغو شد» دقیقتر است. هیچ عملیات واقعی برای سنجش این مرز لازم نیست.
محدودیتها و خطاهای رایج
AbortController فقط ابزار کنترل عملیات وب است و تضمین توقف همه کارهای سرور نیست. همزمانی و رقابت میان پایان و لغو باید آزمون شوند. همچنین حذف فایل یا برگشت اثر، ممکن است به سیاست یا مجوز مستقل نیاز داشته باشد.
کنترل پیش از استفاده
| کنترل | معیار پذیرش |
|---|---|
| مالکیت | فقط کاربر مجاز بتواند لغو کار مربوط را درخواست کند. |
| واقعیت توقف | نمایش لغو با وضعیت واقعی صف و کارگر سازگار باشد. |
| مرز تعهد | اثر انجامشده با پیام لغو نامرئی یا خودکار برگردانده نشود. |
کاربرگ همراه
کاربرگ را با لغو قبل از شروع، حین پردازش و پس از پایان پر کنید. زمان مشاهده سیگنال توسط کارگر را جدا ثبت کنید؛ زمان کلیک کاربر به تنهایی ثابت نمیکند پردازش همان لحظه متوقف شده است.
دریافت کاربرگ CSV این راهنما — دادههای داخل فایل نمونهٔ ساختگیاند. نسخهٔ اصلی را نگه دارید و برای آزمون خودتان یک کپی بسازید.
منبع و ادامهٔ کار
MDN: AbortController؛ OWASP: کنترل مجوز. تاریخ بررسی منابع: ۱ نوامبر ۲۰۲۶.
اگر کاربرد شما پاسخگویی به مشتری است، مسیر مرتبط اپرا را ببینید و مسئله و محدودیتهای همین کاربرگ را برای بررسی در دمو همراه داشته باشید.