2013-11-28 52 views
0

我正面臨一個問題。當用戶登錄登錄按鈕變爲myaccount下拉列表並加載相同頁面時,我有一個頁面,在頁面頂部有登錄按鈕。當我有會話變量時Codeignitor緩存

我在控制器中使用緩存,我加載頁面視圖以提高速度。但問題是當用戶登錄頁面時登錄按鈕是從緩存加載而不是下拉頁面。

<?php if($this->session->userdata('user_id') != ''){?> 

<ul class="nav nav-pills"> 

    <li class="dropdown pull-right"> 
        <ul class="dropdown-menu"> 
        <li><a href="<?php echo base_url();?>account-details"><i class="icon-briefcase icon-black"></i> Wallet</a></li> 

        <li><a href="<?php echo $this->session->userdata('logout')?>"><i class="icon-off icon-black"></i> Logout</a></li>                      
        </ul> 
        </li> 
       </ul> 
      <?php }else{?> 
        <a href="<?php echo base_url();?>login_page/1" class="btn">Login/Sign Up</a> 
                    <?php 
             }?> 

    </div> 

    </div> 
    </div> 

回答

0

不緩存會話特定的東西。

找出標題的哪些部分緩慢且可緩存。只緩存這些部分。你也可以使用JavaScript來做一些動態的詭計,但它真的很複雜。

+0

上述代碼在html頁面中。我正在緩存整個網頁 –

+0

我沒有找到你。有沒有任何參考,我可以閱讀關於這個 –

+0

我不知道任何好的緩存指南,如果這是你的問題。 – Halcyon

0

你可以認爲這兩種選擇,我想:

1.Don't使用CI的通用緩存,但使用緩存庫一樣http://philsturgeon.co.uk/code/codeigniter-cache

2.hack db_driver.php。在第265行(CI 1.7.2),它檢查是否啓用了緩存。修改該行,以便在會話表上使用SELECT時不會執行此操作。