سلام
همانطور که قبلاً هم گفتم، شما میتوانید در سرور هم تایپری برقرار کنید، ولی این کار اصولی و صحیح نیست
مشابه همین مکانیزمی که شما میخواهید در سایت بانک ملی که با asp.net طراحی شده پیاده سازی شده.
فرض کنید در وسط این زمان ده دقیقه مشکلی برای سرور پیش اید و ریست شود (! پیش می اید !) چه به سر تایمر می اید؟ داده های نصب شده چه؟ کی انها را پاک میکند؟ پول مشتری چه میشود؟
بجز اینها، گذاشتن تایمر در سرور برابر است با فعال کردن یک ریسمان، یک ریسمان اضافه ضرب در تعداد عملیاتهای در یک لحظه سرور .... ؟ فشار وارده به سرور توجیه منطقی ندارد.
=====
از جملاتتان من برداشت میکنم که متوجه منظور من از آن ساختار دو جدولی و حذفی نشدید، پیشنهاد میکنم یک بار دیگر بخوانیدش.
مثلاً فرض میکنیم جدولی با ساختار زیر دارید
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که Code نمونه ای از دیتای عددی و CodeName هم نمونه ای از دیتای رشته ای است.
دو جدول با همین ساختار میسازیم
یکی با نام MainTable_Temp و یک جدول اصلی با نام MainTable
دیتاهای جدول اول اصلاً مهم نیست و در هیچ محاسبه ای لحاظ نمیشود، جدول اصلی همان MainTable است که شما هم الآن مشابه اش را دارید.
(مجدداً تاکید میکنم که میشود با یک جدول هم کار را تمام کرد، ولی فکر کنم اینطوری بهتر متوجه شوید.)
دو رویه زیر را در SqlServer میسازیم:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
روند کار و دستورات چنین است:
اول که کاربر دیتاها (مثلاً Code و CodeName) را برای ذخیره میدهد، ما با رویه BeginTransaction_MainTable_Insert آنها را در جدول MainTable_Temp ذخیره میکنم و ID_PrimaryKey_Temp این جدول را از رویه میگیرم، این ID_PrimaryKey_Temp را در ViewState ذخیره میکنیم.
بعد صفحه میانی را (که الآن مشکل شما است) نمایش میدهیم.
اگر کاربر ظرف مدت 10 دقیقه دکمه Submit و تایید نهایی را کلیک کند ما ID_PrimaryKey_Temp را قبلاً در ViewState ذخیره کرده بودیم، میخوانیم و برای تکمیل عملیات تحویل رویه پایانی AcceptTransaction_MainTable_Insert میدهیم، اگر این رویه عدد 1 را برگرداندد یعنی بدون مشکل و در زمان مقرر عملیات تکمیل و نهایی شده و در جدول اصلی MainTable ذخیره شد و اگر صفر را برگرداند، یعنی عملیات تکمیل نشد و احتمالاً از زمان 10 دقیقه گذشته بوده.
به همین سادگی و دقت و تضمین و بدون Session شما میتوانید تراکنش ها و عملیاتهای حجمی بالا را با امنیت زیاد مدیریت کنید.
میماند کد سمت کلاینت که باید در 10 دقیقه صفحه را به جای دیگری redirect کند، که ان هم همانطور که قبلاً گفتم با js و یا تگ مربوطه به راحتی قابل انجام است.