نمایش نتایج 1 تا 3 از 3

نام تاپیک: چگونه بخش هایی از صفحات را Cache کنیم

  1. #1

    چگونه بخش هایی از صفحات را Cache کنیم

    با سلام و خسته نباشید

    چندتا سوال داشتم اگه امکانش هست پاسخ دهید:

    1- جهت کش کردن بخش های صفحات، چگونه تشخیص دهیم که چه قسمتهایی را بایستی کش کنیم؟

    2- آیا جهت کش کردن می بایستی اون بخش رو در یک Action جداگانه نوشت و بمراتب PartialView آنرا Render کرد؟

    یعنی اینکه یه Action به فرم زیر بنویسیم

    [HttpGet]
    [OutputCache(Duration = 86400, VaryByParam = "none")]
    public ActionResult MenuBottom()
    {
    return PartialView("_MenuBottomPartial");
    }


    و همچنین کد زیر را داخل یه PartiaView ذخیره کنیم
    کد HTML:
    <div id="footer">
        <div id="footer_menu">
            @Html.ActionLink("صفحه اصلی", "Index", "Home") |
             @Html.ActionLink("قوانین", "Index", "Home") |
             @Html.ActionLink("تبلیغات", "Index", "Home") |
             @Html.ActionLink("خدمات", "Index", "Home") |
             @Html.ActionLink("ارتباط با ما", "Index", "Home") |
             @Html.ActionLink("راهنما", "Index", "Home")
        </div>
        <div id="BottomNote">کلیه محتوای اتوسط کاربران درج شده است  هیچ مسئولیتی نسبت به آنها ندارد.</div>
        <div id="copyrights">&copy; @DateTime.Now.Year</div>
    </div>
    و در _Layout بشکل زیر Render کنیم
    کد HTML:
     @{Html.RenderAction("MenuBottom", "Home");}

    3- در اینصورت بنظرم کش کردن مثال بالا بهینه نیست!!

    چون باعث میشه 2 بار سازنده کلاس فرآخوانی بشه. از طرفی اگه از db استفاده کرده باشیم 2بار سازنده dbContext فرآخوانی خواهد شد


    متشکرم از راهنمایی هاتون

  2. #2

    نقل قول: چگونه بخش هایی از صفحات را Cache کنیم

    بر چه اساس میگید که دوبار سازنده ی کلاس فراخوانی میشه !؟
    یک BreakPoint در Action بزارید و بررسی کنید.

  3. #3

    نقل قول: چگونه بخش هایی از صفحات را Cache کنیم

    دقیقا همین کار رو کردم. بررسی کردم دیدم یکبار واسه Index سازنده فراخوانی میشه و یکبار هم واسه Render کردن MenuBottom سازنده فراخوانی میشه.
    خوب چون من از سرویسها استفاده می کنم در نتیجه سازنده کنترلر با IUnitOfWork سر و کار داره

    در واقع به ازای هر Render یکبار سازنده اون کلاس فراخوانی میشه. خوب اینکه دیگه بهینه نیست. ما خواستیم ابرو رو درست کنیم زدیم یارو کور کردیم...
    آخرین ویرایش به وسیله Wily_Fox : چهارشنبه 16 مرداد 1392 در 10:44 صبح

تاپیک های مشابه

  1. پاسخ: 36
    آخرین پست: دوشنبه 29 آبان 1391, 12:29 عصر
  2. مبتدی: چگونه افکت را بر روی صفحات وب اعمال کنیم
    نوشته شده توسط bitcob589 در بخش jQuery
    پاسخ: 4
    آخرین پست: چهارشنبه 22 شهریور 1391, 01:26 صبح
  3. سوال: چگونه بخش اخبار را در وب سایتمان پیاده سازی کنیم ؟
    نوشته شده توسط konkoory_82 در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: سه شنبه 26 اردیبهشت 1391, 11:26 صبح
  4. چگونه جداول ADO را در SQL معرفی کنیم
    نوشته شده توسط nasr در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 6
    آخرین پست: شنبه 13 دی 1382, 10:19 صبح
  5. برنامه هایی مانند صفحات پاور پوینت
    نوشته شده توسط مطهر در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: سه شنبه 27 آبان 1382, 01:53 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •