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 شما کار خودشون رو میکنن