رضا
8 ماه پیش توسط رضا مطرح شد
1 پاسخ

مشکل در لایو وایر لود دیتا

با سلام
دوستان من تو یکی از برگه هام یه div دارم توی اون دایو 3 تا سربرگ دارم یکی خرید های در حال انجام --- خرید های انجام شده --- خرید های لغو شده -
کاربر وقتی صفحه رو باز می کنه روی تیتر خرید های انجام شده کلیک می کنه بهش لیست رو نشون میده دوباره خرید های در حال انجام رو میزنه لیست اون ها رو نمایش میده اینجا رفرشی در کار نیست چون Div یه ul هستش تو همون صفحه دیتا همزمان لود شدست.
الان مشکل اینجاست که من از دستور wire:poll.5sec استفاده کردم هر 5 چک میشه که تو دیتابیس خرید در حال انجام تکمیل شده یا نه اما مسئله اینجاست وقتی اینکار انجام میشه اگه کاربر تو بخش خرید های لغو شده مثلا باشه دوباره اون تیکه رفرش میشه میاد همون سربرگ اول.
چطور من دیتا رو بدون اینکه تغییر کنه نمایش بدم ؟
امیدوارم منظورم رو رسونده باشم لایو وایر یه ضعفی تو دستور poll داره اونم اینه وقتی این دستور در اون ثانیه اجرا میشه اگه کاربر تو یه سربرگ ul باشهخودش از اون خارج به میره دوباره سربرگ اول


ثبت پرسش جدید
محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 8 ماه پیش آپدیت شد
0

سلام دوست عزیز
این ضعف در لایو وایر نیست و در استفاده ی نا صحیح از اون هست
شما خودت گفتی هر 5 ثانیه بیاد و رفرش انجام بده، خب رفرش شما تب هم رفرش میشه به کدی که زدی و اونم همون سر برگ اول هست،
یکی از روش های حلش این هست که شما اگر سر برگ هات ثابت هست و اون هارو از دیتا بیس نمیگیری ، به خود سر برگ wire:ignore بدی که تغییرش نده و داخل اون بیایی یه component لایو وایری تعریف کنی برای هر سر برگ و اون رو بیایی و هر 5 ثانیه ابدیت کنی
ولی یه راه ساده تر هم هست و اونم اینه که یه متغیر توی لایو وایر تعریف کنی به نام سربرگ فعال activeTab مثلا
و تغییری در ویو هم بدی که کلاس فعال و باز و بسته شدن سر برگ ها از طریق اون کلاس به سربرگ فعال داده بشه و خودت بتونی هندلش کنی

در اخر سعی کن از poll اونم هر 5 ثانیه توی پروژه هات استفاده نکنی و به جاش برو سمت laravel websocket و از پیام های real time استفاده کن و با هر تغییر وضعیت خرید و اینا بهت اطلاع بده و همش رفرش نکنی
موفق باشی


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

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