Yii Framework Forum: چطور پروفایل یک کاربر رو کش کنیم؟ - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

چطور پروفایل یک کاربر رو کش کنیم؟ Cache totorial needed.

#1 User is offline   amiri 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 90
  • Joined: 08-January 12

Posted 05 June 2013 - 09:04 AM


سلام به دوستان عزیز

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

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

اما تا الان چی کار کردم؟
در قسمت کانفیگ به شکل زیر کامپوننت کش رو تعریف کردم:
ضمن اینکه برام سوال شد Duration رو کجا باید داخل کانفیگ تعریف کنم تا دیگه داخل سورس هی این پارامتر رو ست نکنم.




components part of config/main.php :

'cache'=>array(
   'class'=>'system.caching.CFileCache',
),


بعد داخل اکشن مورد نظرم، به شکل زیر دستور کش رو قرار دادم.


/**
  * 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(); }
 }


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

من اومدم اون دستور کش رو در اول و آخر فایل view قرار دادم. اما عیبش اینه که فقط HTML های داخل ویو کش میشن
وقبلش باید دستور لود کردن مدل از بانک اطلاعاتی اجرا بشه! که خوب منظور من نیست.
از کش به عنوان یک اکشن فیلتر استفاده کردم که خوب باز هم همین نتیجه بالا حاصل شد و کل صفحه رو فیلتر کرد. در حالی که من می خوام فقط آنچه در ActionView تولید میشه رو کش کنم.



0

#2 User is offline   rezaonline.net 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 124
  • Joined: 20-June 12

Posted 06 June 2013 - 01:42 PM

نتیجه کوئری رو کش بکن به نظر من ، صفحات html نیاز نیست

rezaworkshop.ir - rezaonline.net/blog
php5 , mysql , html5 , css3 , jquery + ajax
1

#3 User is offline   amiri 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 90
  • Joined: 08-January 12

Posted 26 June 2013 - 01:03 PM

View Postrezaonline.net, on 06 June 2013 - 01:42 PM, said:

نتیجه کوئری رو کش بکن به نظر من ، صفحات html نیاز نیست



سلام.

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

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

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users