PDA

View Full Version : استفاده از دو پارشیال در یک view



a.golzar66
یک شنبه 20 دی 1394, 13:08 عصر
سلام دوستان
اموزش نحوه استفاده از دو پارتیال در یک ویو را اگر کسی بلده ممنون میشم به من هم بگه

bomb23
یک شنبه 20 دی 1394, 15:23 عصر
سلام
روش خاصی نداره پارشیالاتو فراخونی کن داخل ویو مثلا با کد زیر تعدادشونم مهم نیست صد تا پارشیال فراخوانی کن ولی اگه پارشیالات action خاصی هم داره خیلی سرعت لود کم میشه :

@{Html.RenderPartial("/Content/partials/_Partial_Calender.cshtml");}

a.golzar66
یک شنبه 20 دی 1394, 17:42 عصر
خب دوست عزیز اگر اکشن هم داشته باشه من یکم قاطی میکنم
یعنی برای فراخانی پارشیال اون موقع باید تو اکشن صدا زده بشه یا تو ویو
اگر یه مثال برام بزنی ممنون میشم

bomb23
دوشنبه 21 دی 1394, 11:48 صبح
ببین سعی کن کلا از پارشیالی که اکشن داشته باشه استفاده نکنی، کلا من دلیلی برای استفاده از این نوع پارشیال نمیبینم، به این دلیل میگم استفاده نکن که هر پارشیال که اکشن داشته باشه به اندازه لود یه صفحه زمان به لود صفحه ای که پارشیال رو بهش اضافه کردی اضافه می کنه، در کل به دلیل افزایش لود صفحات به صرفه نیست.
برای لود پارشیال بدون اکشن در بالا مثال زدم کافیه کد بالا رو هرجای صفحه cshtml خودت خواستی استفاده کنی البته باید آدرس رو به آدرس پارشالی که خودت ساختی تغییر بدی.

a.golzar66
سه شنبه 22 دی 1394, 07:24 صبح
دوست عزیز خب شاید اطلاعاتی بخواهیم در پارشیال نشان دهیم که نشه بدون اکشن اون رو پیاده سازی کرد...
نمیدونم من تازه کارم و کلا میپرسم که ایا هر دستوری که تو اکشن به پارشیال بدیم و صداش بزنیم میتونیم همون کارها رو با پارشیال در view هم انجام بدیم؟

bomb23
سه شنبه 22 دی 1394, 09:08 صبح
خب اون اطلاعات مورد نظرتو توی اکشنی که قراره پارشیال داخل اون قرار بگیره فراخونی کن بعد موقع فراخونی پارشیال به اون پاس بده.

gama_slv
سه شنبه 22 دی 1394, 11:01 صبح
تو صفحه اصلی سایت من باید چند تا پارشیال رو باهم نشون بدم مثل اخبار و محصولات و ... همه پارشیال ها هم اکشن دارن فعلا سایت محتوای زیادی نداره ولی با ۸ پارشیال حتما کند میشه
را دیگه ای هم جز پارشیال بلد نیستم.
آیا راه دیگه ای هم هست؟

salar IT man
سه شنبه 22 دی 1394, 16:59 عصر
ببین سعی کن کلا از پارشیالی که اکشن داشته باشه استفاده نکنی، کلا من دلیلی برای استفاده از این نوع پارشیال نمیبینم، به این دلیل میگم استفاده نکن که هر پارشیال که اکشن داشته باشه به اندازه لود یه صفحه زمان به لود صفحه ای که پارشیال رو بهش اضافه کردی اضافه می کنه، در کل به دلیل افزایش لود صفحات به صرفه نیست.
برای لود پارشیال بدون اکشن در بالا مثال زدم کافیه کد بالا رو هرجای صفحه cshtml خودت خواستی استفاده کنی البته باید آدرس رو به آدرس پارشالی که خودت ساختی تغییر بدی.

دوست من این پیشنهاد شما درست نیست.
برای افزایش سرعت بارگزاری صفحه ، بهتر از بخش های مختلف که که فعلا برای کابر در هنگام نمایش اولیه قابل رویت نیست ، به صورت ajax ای واکشی شود.
بهتری راه برای این کار همان استفاده از Action های است که یک partial رو برگشت میدن و تعامل آنها برای مثال با jQuery Aajax میباشد

bomb23
شنبه 26 دی 1394, 03:13 صبح
دوست من این پیشنهاد شما درست نیست.
برای افزایش سرعت بارگزاری صفحه ، بهتر از بخش های مختلف که که فعلا برای کابر در هنگام نمایش اولیه قابل رویت نیست ، به صورت ajax ای واکشی شود.
بهتری راه برای این کار همان استفاده از Action های است که یک partial رو برگشت میدن و تعامل آنها برای مثال با jQuery Aajax میباشد

این روش تست شده از نظر بهینه سازی شدیدا افتضاحه و افت سرعت شدیدا احساس میشه!
من پیشنهادم بر اساس تجربیاته و تست شده نه از هوا! حالا اگه یه روزی از این روش استفاده کردین حرف من میرسید!:چشمک:

salar IT man
شنبه 26 دی 1394, 07:32 صبح
این روش تست شده از نظر بهینه سازی شدیدا افتضاحه و افت سرعت شدیدا احساس میشه!
من پیشنهادم بر اساس تجربیاته و تست شده نه از هوا! حالا اگه یه روزی از این روش استفاده کردین حرف من میرسید!:چشمک:

مشخصه تجربیاتت فعلا جوابگو نیست دوست من. یه نگاه به سری از پروژه هایی که سورس باز هست (http://www.dotnettips.info/projectauthor/%D8%BA%D9%84%D8%A7%D9%85%D8%B1%D8%B6%D8%A7%20%D8%B 1%D8%A8%D8%A7%D9%84#/page/1/date/desc) نگاهی کن به خوبی کد هاشون رو رویو کن تا کمی این تجربیاتت کامل شه و کسی رو صرفا با تجربه خودت گمراه نکنی.

hakim22
شنبه 26 دی 1394, 12:05 عصر
فرض کنید شما صفحه اول از یک سایت خبری دارید و میخواهید اطلاعات زیادی رو نمایش بدید . آیا همه ی اطلاعات رو درون یک مدل میسازید و اون مدل رو درون یک اکشن از یک کنترلر پر میکنید و درون ویو قرار میدید ؟ این کار ممکنه ولی یک مدل بیش از حد بزرگ دارید و یک اکشن خیلی بزرگ و اگر در هر قسمت از اطلاعات تغییر ایجاد بشه همه ی متد اکشن مربوطه باید تغییر کنه.

اگر اطلاعات نمایش داده شده در هر قسمت از صفحه رو ببریم درون پارشیال ویو جدا میتوانیم مدیریت خیلی بهتری روی نمایش آن داشته باشیم. ضمن اینکه استفاده از اکشن برای پارشیال ویو ها در بسیاری از موارد الزامی هست. نمیشه همه ی اطلاعات رو درون یک کنترلر و یک مدل پردازش کرد. خیلی وقتها شما از چند کنترلر یا Area مختلف اطلاعاتی رو درون یک صفحه نمایش میدهید.

در مورد بازدهی فکر نمیکنم فرق زیادی وجود داشته باشه. اطلاعات اطلاعات هست و باید فراخوانی بشه. چه همرو جمع کنید درون یک مدل و نمایش بدید و چه در چند پارشیال ویو و اکشن جدا بازخوانی بشه.

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

مدیریت چند پارشیال ویو راحت تره. مدیریت اکشن های جدا که هرکدوم وظیفه ی خاصی دارند در دراز مدت خیلی راحت تره. این روش در مقابل تغییرات مقاوت کمتری داره و زحمت کد نویس رو در بروز رسانی و تغییرات آینده خیلی کمتر میکنه. خیلی راحت میشه نمایش یک پارشیال ویو رو متوقف کرد (حذف یک خط کد در ویو)ولی وقتی همه ی اطلاعات درون یک ویو هستند صفحه باید عملا ویرایش بشه .

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

salar IT man
شنبه 26 دی 1394, 15:36 عصر
استفاده از ajax هم سرعت پردازش رو بالاتر نمیبره فقط حس بهتری به کاربر میده و برای طراحی رابط کاربری اثر بخشه و لزوما باعث بالابردن بازدهی و سرعت لود شدن اطلاعات نمیشه.
.

واقعا همچین چیزی امکان داره !

برای افزایش سرعت بارگزاری صفحه ، بهتر از بخش های مختلف که که فعلا برای کابر در هنگام نمایش اولیه قابل رویت نیست ، به صورت ajax ای واکشی شود

این یعنی لود اولیه صفحه با سرعت بالای انجام خواهد گرفت ؛ یعنی به جای اینکه کاربر منتظر دریافت تمام بخش های لازم برای نمایش باشد ، فعلا برای مثال 10 خبر آخر را مشاهده میکند (این یعنی افزایش سرعت یعنی واکشی فقط 10 رکورد و نه اینکه یه ویو مدل پیچیده که لازم است در همان درخواست اول چندین کوئری زده شود برای پر کردن ویومدل) فک نمیکنم لازم باشه توضیح اضافه داده شود.

bomb23
سه شنبه 29 دی 1394, 07:56 صبح
مشخصه تجربیاتت فعلا جوابگو نیست دوست من. یه نگاه به سری از پروژه هایی که سورس باز هست (http://www.dotnettips.info/projectauthor/%D8%BA%D9%84%D8%A7%D9%85%D8%B1%D8%B6%D8%A7%20%D8%B 1%D8%A8%D8%A7%D9%84#/page/1/date/desc) نگاهی کن به خوبی کد هاشون رو رویو کن تا کمی این تجربیاتت کامل شه و کسی رو صرفا با تجربه خودت گمراه نکنی.

من کل از یه روش دیگه استفاده میکنم و قرار نیست آدم همه تجربیاتشو به صورت رایگان در اختیار همه قرار بده ولی از لحاظ performance چیزی که شما میگید شبیه فاجعست حداقل یه بارم که شده این تست رو انجام بده : یه فرم بساز که سه بخش داره یه بار همشو با یه مدل و اکشن لود کن یه بار با 4 اکشن که سه تاش برای پارشیاله و یکی اکشن اصلی. بعد پابلیش کن روی وب قرار بده بعد ا ابزارهای مختلف مثل www.webpagetest.org مقایسشون کن اون موقع خودت متوجه عمق فاجعه میشی و اگه این پروژه متن باز که معرفی کردی متعلق به خودت باشه اصلاحش میکنی!
موفق باشید.

salar IT man
سه شنبه 29 دی 1394, 13:18 عصر
من کل از یه روش دیگه استفاده میکنم و قرار نیست آدم همه تجربیاتشو به صورت رایگان در اختیار همه قرار بده ولی از لحاظ performance چیزی که شما میگید شبیه فاجعست حداقل یه بارم که شده این تست رو انجام بده : یه فرم بساز که سه بخش داره یه بار همشو با یه مدل و اکشن لود کن یه بار با 4 اکشن که سه تاش برای پارشیاله و یکی اکشن اصلی. بعد پابلیش کن روی وب قرار بده بعد ا ابزارهای مختلف مثل www.webpagetest (http://www.<strong>webpagetest</strong>).org مقایسشون کن اون موقع خودت متوجه عمق فاجعه میشی و اگه این پروژه متن باز که معرفی کردی متعلق به خودت باشه اصلاحش میکنی!
موفق باشید.

روی مسئله رو عوض نکن؛ هر چیزی جای خودش رو داره ! دقت کن به نظر قبلی من .
اصلا معنی داره برای پنل مدیریت همچین کاری کرد ، آن هم برای یک صفحه مربوط به فرم ساز. پیشنهاد میکنم مطالعه کن در مورد Partial View ها (http://www.dotnettips.info/post/816/asp-net-mvc-12) .
تو هم موفق باشی