PDA

View Full Version : نگه داشتن نتایج سرچ ajax ای با زدم دکمه back



resident
پنج شنبه 16 دی 1395, 20:58 عصر
سلام.
من یه صفحه دارم که تو اون به صورت ajaxای سرچ انجام میشه. یعنی مقادیری که کاربر سرچ می کنه توسط ajax به برنامه ارسال می شه.
وقتی کابر به یه صفحه بعد میره و backمیزنه، آیا میشه کاربر رو به صفحه ای برد که سرچ کرده بود؟ یعنی نتایج سرچش رو ببینه؟

سرچ کردم گفته بودن با window.history.back(); میشه. اما جواب نمیده...

[younes]
پنج شنبه 16 دی 1395, 21:47 عصر
میتونید در سمت سرور یک کوکی ست کنید و تاریخچه ی کاربر رو نگه دارید یا اصلا میشه یک جایی نتیجه جستوجو رو کش کرد......

resident
چهارشنبه 29 دی 1395, 14:15 عصر
;2354260']میتونید در سمت سرور یک کوکی ست کنید و تاریخچه ی کاربر رو نگه دارید یا اصلا میشه یک جایی نتیجه جستوجو رو کش کرد......

کار دیگه ای نمیشه کرد؟ مثلا اینکه URL ام رو عوض کنم و شرطی که ایجاد شده رو در URL بزارم.
اگه اینکار انجام بشه، وقتی به صفحه جدید میریم و backمیزنیم به url ای که خودم ایجاد کردم میره؟

resident
چهارشنبه 29 دی 1395, 17:34 عصر
window.history.pushState میتونه کمک کنه؟
من باهاش کار نکردم

plague
پنج شنبه 30 دی 1395, 20:56 عصر
اگه زبان بک اندت php هستش از pjax استفاده کن خودش حافظه رو مدیریت میکنه وقتی دکمه بک بزنی

resident
جمعه 01 بهمن 1395, 17:01 عصر
اگه زبان بک اندت php هستش از pjax استفاده کن خودش حافظه رو مدیریت میکنه وقتی دکمه بک بزنی

از .net استفاده می کنم

plague
شنبه 02 بهمن 1395, 14:03 عصر
البته فکرش رو که میکنم ربطی به زبان بک اند نباید داشته باشه
یه سرچ کنی میبینی که ظاهرا برای asp هم استفاده میشه
http://www.programering.com/a/MDN3ITMwATY.html

resident
شنبه 02 بهمن 1395, 17:12 عصر
البته فکرش رو که میکنم ربطی به زبان بک اند نباید داشته باشه
یه سرچ کنی میبینی که ظاهرا برای asp هم استفاده میشه
http://www.programering.com/a/MDN3ITMwATY.html

ممنونم از شما.
یه سوال. البته این رو هم بگم که سرچ کردم اما چیزی متوجه نشدم
مزیت pjax نسبت به ajax چیه و روی این مشکل من تا چه حد کمک می کنه؟

plague
یک شنبه 03 بهمن 1395, 00:52 صبح
pjax از همون ایجکس استفاده میکنه ولی این اومده خیلی قسمت هاش رو مدیریت کرده و یه سری ملاحظات و امکانات رو در نظر گرفته که خیلی به کار میان
مثلا شما فرض کن صفحه محصولات داری که لیست محصولات رو نشون میده , شما میخای این رو کاملا با ایجکس بنویسی ولی چند تا مشکل هست که من مهماشون رو مثال میزنم

1 - دکمه بک کار نخواهد کرد (همین مشکل شما )
2 - مشکل دوم که بی ربط به مشکل اول نیست اینه که تغییرات در صفحه میده کاربر پایدار نیستن , فرض کن شما چندین نوع فیلترینگ انجام میدی روی محصولاتی که داری میبینی , مثلا مرتب سازیشون رو بر اساس قیمت میزاری و دسته بندی رو x میزاری و ...یا اینکه صفحه بندی کلیک میکنی میری صفحه 100 .... الان اگه صفحه رو رفرش کنید همه فیلترینگ و تنظیمات شما از بین میره و صفحه هم بررمیگرده به 1
3 - از نظر سئو به مشکل برمیخوری چون خیلی از ربات ها نمیتونن جاوا اسکریپت رو اجرا کنن در نتیجه مثلا خزنده موتور جستجو اگه تو سایت شما بیاد نمیتونه بره صفحه 2 محصولاتتون رو ایندکس کنه

همه اینها راه حل داره مثلا مورد 1 با جاواسکریپت باید حافظه رو مدیریت کنید
یا مورد 2 راه حلش اینه که url صفحه همزمان با تغییرات درون صفحه تغییر کنه تا با رفرش کردن فیلتر ها از بین نره
یا مورد 3 راه حلش اینه که لینک ها رو هم با ایجکس بسازید هم در کنارش با html خالی هم قرار بدین و بک اندتون رو جوری بنویسید که به هر 2 شکل پاسخ مناسب رو بده

ما فرض کن اصلا ایجکس نداری کدهات رو بنویس باhtml خالی بعد کتابخونه pjax رو ضمیمه کن تو صفحت و لینک هات رو بهش معرفی کن مثلا
$(document).pjax('.pagination a');
دیگه وقتی کسی روی این لینک کلیک کرد pjax سکان رو در دست میگیره با ایجکس درخواست میفرسته به بک اند داده رو میگیره و میاره تو صفحه لود میکنه در عین حال بدون اینکه صفحه رفرش بشه لینک صفحه رو هم تغییر میده به لینک صفحه جدید و در کنار اون صفحه قبلی رو هم به خاطر میسپره که توش چی بود تا اگه روی بک کلیک کردی همون قبلی رو ببینی
اینجوری مشکل 1و2 حل میشه اگرم ربات بیاد تو سایت pjax کلا عمل نمیکنه و کد های html شما کار خودشون رو میکنن

نیما عطایی
یک شنبه 03 بهمن 1395, 09:20 صبح
سلام
PAJAX راه حل خوبی ه ولی باز هم از سرور دریافت میشه اطلاعاتت
راه حلی که من برای یه پروژه جستجو استفاده کردم نگه داشتن نتیجه هر جستجو در داخل صفحه خودم در یک فیلد Hidden بود که یه خصوصیت data-search به هر فیلد اضافه میکردم که چه نتیجه جستجویی منجرب به چه نتیجه ای از سمت سرور شده
البته اگه نتایج جستجو هات تغییر نمیکنه
برای برگشت هم میتونی از رویداد های کیبورد کلید هایی که میخوای و بگیری و نتایج جستجوتو هم یا تو کوکی یا تو یه فیلد Hidden بصورت لیست ذخیره کنی
موفق باشی

plague
یک شنبه 03 بهمن 1395, 11:53 صبح
سلام
PAJAX راه حل خوبی ه ولی باز هم از سرور دریافت میشه اطلاعاتت
راه حلی که من برای یه پروژه جستجو استفاده کردم نگه داشتن نتیجه هر جستجو در داخل صفحه خودم در یک فیلد Hidden بود که یه خصوصیت data-search به هر فیلد اضافه میکردم که چه نتیجه جستجویی منجرب به چه نتیجه ای از سمت سرور شده
البته اگه نتایج جستجو هات تغییر نمیکنه
برای برگشت هم میتونی از رویداد های کیبورد کلید هایی که میخوای و بگیری و نتایج جستجوتو هم یا تو کوکی یا تو یه فیلد Hidden بصورت لیست ذخیره کنی
موفق باشی

سلام
مرورگر نتیجه درخواست های ایجکس رو کش میکنه
pjax در هنگام زدن دکمه بک و فوروارد از کش مرورگر میخونه داده ها رو و درخواست جدید ارسال نمیکنه به سرور
جسارتا به نظر من روش شما هم خیلی تمیز نیست هم اینکه خیلی از مشکلاتی که بالا گفتم رو حل نمیکنه

resident
دوشنبه 04 بهمن 1395, 14:04 عصر
سلام
مرورگر نتیجه درخواست های ایجکس رو کش میکنه
pjax در هنگام زدن دکمه بک و فوروارد از کش مرورگر میخونه داده ها رو و درخواست جدید ارسال نمیکنه به سرور
جسارتا به نظر من روش شما هم خیلی تمیز نیست هم اینکه خیلی از مشکلاتی که بالا گفتم رو حل نمیکنه

به نظر میاد اطلاعات رو از سرور میخونه.
این لینک رو ببینید
https://github.com/defunkt/jquery-pjax

plague
دوشنبه 04 بهمن 1395, 16:07 عصر
به نظر میاد اطلاعات رو از سرور میخونه.
این لینک رو ببینید
https://github.com/defunkt/jquery-pjax

عرض کردم که در هنگام زدن کلید بک و فوروارد از کش میخونه
وگرنه مشخصه که اطلاعات اولیه باید از سرور خونده بشن