سلام دوستان
اموزش نحوه استفاده از دو پارتیال در یک ویو را اگر کسی بلده ممنون میشم به من هم بگه
سلام دوستان
اموزش نحوه استفاده از دو پارتیال در یک ویو را اگر کسی بلده ممنون میشم به من هم بگه
سلام
روش خاصی نداره پارشیالاتو فراخونی کن داخل ویو مثلا با کد زیر تعدادشونم مهم نیست صد تا پارشیال فراخوانی کن ولی اگه پارشیالات action خاصی هم داره خیلی سرعت لود کم میشه :
@{Html.RenderPartial("/Content/partials/_Partial_Calender.cshtml");}
خب دوست عزیز اگر اکشن هم داشته باشه من یکم قاطی میکنم
یعنی برای فراخانی پارشیال اون موقع باید تو اکشن صدا زده بشه یا تو ویو
اگر یه مثال برام بزنی ممنون میشم
ببین سعی کن کلا از پارشیالی که اکشن داشته باشه استفاده نکنی، کلا من دلیلی برای استفاده از این نوع پارشیال نمیبینم، به این دلیل میگم استفاده نکن که هر پارشیال که اکشن داشته باشه به اندازه لود یه صفحه زمان به لود صفحه ای که پارشیال رو بهش اضافه کردی اضافه می کنه، در کل به دلیل افزایش لود صفحات به صرفه نیست.
برای لود پارشیال بدون اکشن در بالا مثال زدم کافیه کد بالا رو هرجای صفحه cshtml خودت خواستی استفاده کنی البته باید آدرس رو به آدرس پارشالی که خودت ساختی تغییر بدی.
دوست عزیز خب شاید اطلاعاتی بخواهیم در پارشیال نشان دهیم که نشه بدون اکشن اون رو پیاده سازی کرد...
نمیدونم من تازه کارم و کلا میپرسم که ایا هر دستوری که تو اکشن به پارشیال بدیم و صداش بزنیم میتونیم همون کارها رو با پارشیال در view هم انجام بدیم؟
خب اون اطلاعات مورد نظرتو توی اکشنی که قراره پارشیال داخل اون قرار بگیره فراخونی کن بعد موقع فراخونی پارشیال به اون پاس بده.
تو صفحه اصلی سایت من باید چند تا پارشیال رو باهم نشون بدم مثل اخبار و محصولات و ... همه پارشیال ها هم اکشن دارن فعلا سایت محتوای زیادی نداره ولی با ۸ پارشیال حتما کند میشه
را دیگه ای هم جز پارشیال بلد نیستم.
آیا راه دیگه ای هم هست؟
دوست من این پیشنهاد شما درست نیست.
برای افزایش سرعت بارگزاری صفحه ، بهتر از بخش های مختلف که که فعلا برای کابر در هنگام نمایش اولیه قابل رویت نیست ، به صورت ajax ای واکشی شود.
بهتری راه برای این کار همان استفاده از Action های است که یک partial رو برگشت میدن و تعامل آنها برای مثال با jQuery Aajax میباشد
مشخصه تجربیاتت فعلا جوابگو نیست دوست من. یه نگاه به سری از پروژه هایی که سورس باز هست نگاهی کن به خوبی کد هاشون رو رویو کن تا کمی این تجربیاتت کامل شه و کسی رو صرفا با تجربه خودت گمراه نکنی.
فرض کنید شما صفحه اول از یک سایت خبری دارید و میخواهید اطلاعات زیادی رو نمایش بدید . آیا همه ی اطلاعات رو درون یک مدل میسازید و اون مدل رو درون یک اکشن از یک کنترلر پر میکنید و درون ویو قرار میدید ؟ این کار ممکنه ولی یک مدل بیش از حد بزرگ دارید و یک اکشن خیلی بزرگ و اگر در هر قسمت از اطلاعات تغییر ایجاد بشه همه ی متد اکشن مربوطه باید تغییر کنه.
اگر اطلاعات نمایش داده شده در هر قسمت از صفحه رو ببریم درون پارشیال ویو جدا میتوانیم مدیریت خیلی بهتری روی نمایش آن داشته باشیم. ضمن اینکه استفاده از اکشن برای پارشیال ویو ها در بسیاری از موارد الزامی هست. نمیشه همه ی اطلاعات رو درون یک کنترلر و یک مدل پردازش کرد. خیلی وقتها شما از چند کنترلر یا Area مختلف اطلاعاتی رو درون یک صفحه نمایش میدهید.
در مورد بازدهی فکر نمیکنم فرق زیادی وجود داشته باشه. اطلاعات اطلاعات هست و باید فراخوانی بشه. چه همرو جمع کنید درون یک مدل و نمایش بدید و چه در چند پارشیال ویو و اکشن جدا بازخوانی بشه.
استفاده از ajax هم سرعت پردازش رو بالاتر نمیبره فقط حس بهتری به کاربر میده و برای طراحی رابط کاربری اثر بخشه و لزوما باعث بالابردن بازدهی و سرعت لود شدن اطلاعات نمیشه.
مدیریت چند پارشیال ویو راحت تره. مدیریت اکشن های جدا که هرکدوم وظیفه ی خاصی دارند در دراز مدت خیلی راحت تره. این روش در مقابل تغییرات مقاوت کمتری داره و زحمت کد نویس رو در بروز رسانی و تغییرات آینده خیلی کمتر میکنه. خیلی راحت میشه نمایش یک پارشیال ویو رو متوقف کرد (حذف یک خط کد در ویو)ولی وقتی همه ی اطلاعات درون یک ویو هستند صفحه باید عملا ویرایش بشه .
در آخر مزیت کش کردن رو فراموش نکنید. یک صفحه ممکنه اطلاعات زیادی رو نمایش بده که لازم نیست هربار از سرور خوانده شود. در اکشن های جدا میشود هر اکشن را به طور مجزا کش کرد. و مدیریت جداگانه روی کش اعمال کرد. ولی وقتی همه ی اطلاعات با یک اکشن و یک مدل درون صفحه نمایش داده شود یا شما باید همه ی مدل را کش کنید یا نکنید و انتخاب وجود ندارد.
واقعا همچین چیزی امکان داره !
برای افزایش سرعت بارگزاری صفحه ، بهتر از بخش های مختلف که که فعلا برای کابر در هنگام نمایش اولیه قابل رویت نیست ، به صورت ajax ای واکشی شوداین یعنی لود اولیه صفحه با سرعت بالای انجام خواهد گرفت ؛ یعنی به جای اینکه کاربر منتظر دریافت تمام بخش های لازم برای نمایش باشد ، فعلا برای مثال 10 خبر آخر را مشاهده میکند (این یعنی افزایش سرعت یعنی واکشی فقط 10 رکورد و نه اینکه یه ویو مدل پیچیده که لازم است در همان درخواست اول چندین کوئری زده شود برای پر کردن ویومدل) فک نمیکنم لازم باشه توضیح اضافه داده شود.
من کل از یه روش دیگه استفاده میکنم و قرار نیست آدم همه تجربیاتشو به صورت رایگان در اختیار همه قرار بده ولی از لحاظ performance چیزی که شما میگید شبیه فاجعست حداقل یه بارم که شده این تست رو انجام بده : یه فرم بساز که سه بخش داره یه بار همشو با یه مدل و اکشن لود کن یه بار با 4 اکشن که سه تاش برای پارشیاله و یکی اکشن اصلی. بعد پابلیش کن روی وب قرار بده بعد ا ابزارهای مختلف مثل www.webpagetest.org مقایسشون کن اون موقع خودت متوجه عمق فاجعه میشی و اگه این پروژه متن باز که معرفی کردی متعلق به خودت باشه اصلاحش میکنی!
موفق باشید.
روی مسئله رو عوض نکن؛ هر چیزی جای خودش رو داره ! دقت کن به نظر قبلی من .
اصلا معنی داره برای پنل مدیریت همچین کاری کرد ، آن هم برای یک صفحه مربوط به فرم ساز. پیشنهاد میکنم مطالعه کن در مورد Partial View ها .
تو هم موفق باشی