نوشتن یک وب سایت به صورت realtime در ریلز

دورد
دوستان من میخوام وب سایتی که با ریلز نوشتم بدون نیاز به رفرش به صورت realtime آپدیت بشه
انگار این کار با کمک ajax شدنیه ولی میخوام بدونم راهی دیگه نیست مثلا در قالب یه جم یا کلا یه راه که من نخوام ajax بزنم

ایجکس که خدا بیامرزتش! الآن برای همچین کاری اصلا مناسب نیست، فقط برای کارهای کوچیک استفاده میشه.
برای کل وبسایت، پیشنهاد میکنم برید سراغ ساخت SPA و از یه چیزی مثل React استفاده کنید.
خیلی راحتتر از ajax هست، ولی اگه کلا میخواید از js دوری کنید، نظری ندارم.

سلام
اصطلاح فنی اش Ajax هست. با اون این کار رو میکنن (جاوا اسکریپت).
توی ریلز یک چیز سر راستی داره به اسم turbolinks که توی اون سایت GoRails.com آموزشش هست
اگر چیز حرفه ای تری بخوای، باید بری سمت ریکت و vue یا Emberjs (این آخری به ریلز شبیه تره ولی کمتر معروفه) و درواقع با اینها اپ میسازی (مثل اپ اندروید) و اینا صرفا با backendت صحبت میکنن.

باز اگر خواستی با js کار کنی، میتونی با coffeescript کار کنی که عین روبی هست. نسبتا معروف و قدیمی ولی در عین حال بازار بیشتر دست typescript هست که شبیه جاوا و c# هست. دولوپرش زیاد نیست و react و vue خیلی ساپورتش نمیکنن. ولی اگر تنهایی بخوای کار کنی coffeescript خوبه برای کد نویسی. View هم میتونی با haml بنویسی اونم خیلی باحال و ساده است.
حالا این حرفای آخری اضافی بود. برای اینکه یک بخشی رو رفرش کنی بدون اینکه صفحه رفرش شه از turbolinks میتونی استفاده کنی.

2 Likes

پویا جان منظور شما اینه که بجای ajax مثلا از websocket استفاده بشه؟ من فکر میکنم برای بیشتر پروژه های SPA و‌ همچنین اونهایی که با ریکت پیاده شدن، ajax همچنان راه حل پرطرفدار تر و بهتری باشه، هم از نظر سادگی و هم فراوانی کتاب خانه هایی مثل axios, مگر این که واقعا به ارتباط فول داپلکس نیاز باشه

3 Likes

نه. منظورم این بود که ajax برای وقتی خوبه که توی صفحه یه دونه المنت داریم میخوایم اون آپدیت بشه.
ولی اگه چیزای زیادی توی صفحه هستن که باید با سرور، sync باشن و eventهای زیادی باید هندل بشه بدون عوض شدن صفحه، راحتتره که کلا بریم سراغ react.
اینم بگم که درمورد کتابخونه‌های ajax اطلاعی ندارم.

اینکه گفتم ‌«خدا بیامرزتش» منظورم این بود که یه زمانی پادشاهی میکرد، الآن برای صفحات پیچیده، از راه‌حل‌های دیگه استفاده میشه.

البته همچنان بیشتر پروژه به صورت ajax پیاده میشه، من متوجه نمیشم منظور شما از اینکه بریم سراغ ریکت چیه

1 Likes

تجربه‌ای که با ajax داشتم، چیزی نیست که بخوام دوباره برم سراغش، مگر برای پروژه‌ای که کلا یکی‌دوتا المنت توی صفحه رو بخوام تغییر بدم.

خب رفتن سراغ ریکت چطور شما رو از ajax خلاص میکنه؟

1 Likes

اینطور که معماری بهتری داره و وقتی قراره تمام صفحه رو باهاش مدیریت کنم، کمتر سردرد میگیرم.

ببین پویا جان ajax یک روش تبادل دیتا بین سرور و کلاینت هست که در پروژه های ریکت هم استفاده میشه، و معماری تاثیری در موضوع نداره، تنها کاری که میکنن استفاده از کتابخونه هایی مثل axios هست که هر جای دیگه ای هم میشه ازش استفاده کرد.

3 Likes

من کاری ندارم اون پایین چه اتفاقی میفته.

پس منظور شما اینه که کلا ریکت کارو ساده میکنه، بله کاملا موافقم.
البته بازم در پروژه های ریکت کار با ajax به عهده دولپر هست و باید فانکشن های لازم رو دستی بنویسه، یعنی ریکت دخالتی در موضوع ارتباط با سرور به صورت مستقیم نداره.

2 Likes

بله. وقتی که از ajax استفاده میکردم، بیشتر از چیزی که دوست داشتم درگیر جزئیات میشدم. جزئیات تکراری. (منظورم دستکاری المنت‌های داخل صفحه هست)
تجربه‌ای که با react داشتم، خیلی برام راحتتر بود.

از اون باحالتر هم وقتیه که از ClojureScript + Reframe استفاده میکنیم. اون دیگه خداست :heart_eyes:

متاسفانه کلوژر محبوبیت فراگیر نداره و دولوپر براش کم هست در مقایسه با ریکت، همین باعث میشه نتونیم در خیلی از جاها بجز پروژه های شخصی از قدرتش بهره ببریم. اما ای کاش اینطور نبود

1 Likes