Mostafa Nazar
2 سال پیش توسط Mostafa Nazar مطرح شد
4 پاسخ

تداخل ریکوئست ها و ادغام خروجی

سلام
برنامه ام با ویو جی اس هستش
در صفحه اول برندها هستش وقتی روش کلیک میکنی میره محصولات اون برند رو نشون میده درحالی در ریسپانس تایم اون هم زیاده مشکل اینجاست زمانی که روی برندشماره یک کلیک میکنی میره صفحه محصولات ریسپانس تایم مثلا 10 ثانیه هستش حالا همیطور که در حال لود شدن هستش میرم صفحه اول یه برند دیگه رو لود میکنیم و این ریسپانس تایم مثلا 5 ثانیه هستش و ریکوئست اول هم هنوز پاسخش نیومده . بعد ریسپانس اول میاد و ر بعد ریسپانس دوم میاد چیزی که مشاهده میکنم اینه که محصولات برند اول رو نشون میده و محصولات برنده دوم هم نشون میده یعنی ترکیب میکنه . نحوه ذخیره اطلاعات هم با vuex هستش و دیتا رو هر با که درخواست ارسا ل میشه هم خالی میکنم .
برای حل این مشکل چی کار باید کرد؟
آیا مشکل از ریسپانس تایم هستش ؟


ثبت پرسش جدید
akam-nejati
@mr.akam.320 2 سال پیش آپدیت شد
0

mostafa.8722@
میتونید این مقاله رو بخونید در همین زمینه . ولی چند جا رو چک کنید . مثلا ایا شرط اجرا میشه یا نه . کنسل کردن درخواست رو خارج از شرط بنویسید ببینید چه جوریه

اینم لینک مقاله : https://coderethinked.com/how-to-cancel-a-request-using-axios-in-vue-js/amp/


akam-nejati
@mr.akam.320 2 سال پیش مطرح شد
0

سلام . میتونید با استفاده از هوک های vue js چک کنید که وقتی کامپوننتتون از بین رفت یا به اصطلاح صفحه یه برندتون بسته شد . درخواست همون جا کنسل بشه و نتیجه اون درخواست برنگرده . که اگه از fetch استفاده می کنید میتونید با کمک abort این کار رو انجام بدید . اینجوری دیگه درخواستی برگشت داده نمیشه


امیرمهدی رحیمی
تخصص : front-end
@AmirMahdiAmirMahdi 2 سال پیش آپدیت شد
0

سلام
احتمالا چون از vuex استفاده کردین و اون هم یک استور گلوبال هستش اینطوری میکنه
1__میتونید این کارو بکنید که دکمه برند مورد نظر یک router-link باشه و وقتی صفحه مورد نظر لود شد با کمک هوک ها به سرور ریکویست بزنید
و در همون صفحه ذخیرش کنید تا اینطوری توی صفحه های دیگه دخالت نداشته باشه

2__ولی اگه میخواید توی یه متغیر توی vuex باشه میتونید قبل از باز شدن صفحه کامل متغیر رو به null تغییر بدین و بعد دوباره پرش کنید

3__اگه این امکان وجود نداره میتونید با کمک هوک ها قبل از کامل بسته شدن صفحه ریکوست رو کنسل کنید که با abort قابل انجامه ;)


Mostafa Nazar
تخصص : برنامه نویس وب و موبایل
@mostafa.8722 2 سال پیش مطرح شد
0

ممنون
@mr.akam.320
@AmirMahdiAmirMahdi
من از کد زیر برای کنسل کردن استفاده کردم برای axios ولی جواب نداد

   let  source = axios.CancelToken.source();
      if (source) {
      source.cancel("Todos Component got unmounted");

نحوه ی استفاده از abort چطوریه؟


akam-nejati
@mr.akam.320 2 سال پیش آپدیت شد
0

mostafa.8722@
میتونید این مقاله رو بخونید در همین زمینه . ولی چند جا رو چک کنید . مثلا ایا شرط اجرا میشه یا نه . کنسل کردن درخواست رو خارج از شرط بنویسید ببینید چه جوریه

اینم لینک مقاله : https://coderethinked.com/how-to-cancel-a-request-using-axios-in-vue-js/amp/


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام