چطور پروفایل یک کاربر رو کش کنیم؟

[rtl][right]

[font="Tahoma"]سلام به دوستان عزیز

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

در زمان لود شدن اکشن نمایش پروفایل، ابتدا یک واحد به شمارنده نمایش پروفایل در DB اضافه میشه و بعدش خود پروفایل از DB لود و نمایش میشه

نمی دونم چطوری باید این کار انجام بشه. اینم بگم که تمام رفرنس ها رو خوندم.

به مثال نیاز دارم ولی مثال مناسبی هم پیدا نکردم.

[/font]

[font="Tahoma"]اما تا الان چی کار کردم؟

در قسمت کانفیگ به شکل زیر کامپوننت کش رو تعریف کردم:

ضمن اینکه برام سوال شد Duration رو کجا باید داخل کانفیگ تعریف کنم تا دیگه داخل سورس هی این پارامتر رو ست نکنم.[/font]

[/right]

[/rtl]




components part of config/main.php :


'cache'=>array(

   'class'=>'system.caching.CFileCache',

),



[rtl][right]

[font="Tahoma"]بعد داخل اکشن مورد نظرم، به شکل زیر دستور کش رو قرار دادم.

[/font][/right][font="Tahoma"][font="Arial"]

[/rtl][/font]




/**

  * Displays a particular model.

  */

 public function actionView($profile_id)

 {

// some code to increase +1 to Hit counter of profile in DB (using query builder)


  $cacheId= $profile_id;

  if($this->beginCache($cacheId, array('duration'=>3600))) {


     $prof=$this->loadModel($profile_id);


     $this->render('view',array(

        'model'=>$prof,

     ));


  $this->endCache(); }

 }



[font="Arial"][rtl][/font][/font][right][font="Tahoma"]

کد بالا کار می کنه. اما به جای کش کردن پروفایل کاربر، کل صفحه رو به طور کامل (همراه با Layout و همه منوها و غیره) کش می کنه!

من اومدم اون دستور کش رو در اول و آخر فایل view قرار دادم. اما عیبش اینه که فقط HTML های داخل ویو کش میشن

وقبلش باید دستور لود کردن مدل از بانک اطلاعاتی اجرا بشه! که خوب منظور من نیست.[/font][/right][right][font="Tahoma"]از کش به عنوان یک اکشن فیلتر استفاده کردم که خوب باز هم همین نتیجه بالا حاصل شد و کل صفحه رو فیلتر کرد. در حالی که من می خوام فقط آنچه در ActionView تولید میشه رو کش کنم.

[/font] [/right][font="Arial"]

[/rtl][/font]

[font="Tahoma"][rtl]نتیجه کوئری رو کش بکن به نظر من ، صفحات html نیاز نیست[/rtl][/font]

[font="Tahoma"][rtl]سلام.

از جواب شما ممنونم

اما راستش همون صفحه HTML هم تولیدش نیازمند لود کردن کلی تابع هست که از چند فایل مختلف صدا میشن

یک راه خنده دار پیدا کردم برای حل این مشکل که البته اصولی به نظر نمیاد و لی کار می کنه

دارم حتی کم کم به این نتیجه می رسم که ActiveRecord رو کنار بگزارم و از Query Builder استفاده کنم

به این صورت فشار کدها روی سرور هم خیلی کمتر میشه[/rtl][/font]