2012-04-06 92 views
0

我正在使用Codeigniter和Tank Auth認證庫。當用戶到達需要登錄並且尚未登錄的頁面時,他將被重定向到登錄頁面。如何找出什麼在減慢頁面的加載速度

問題:在本地主機上,當我刷新網頁時,頻繁地刷新網頁可能需要長達30秒才能開始加載頁面!有時,在等待頁面加載後,似乎我已經註銷,因爲加載的頁面是我已被重定向到的登錄頁面。在實時服務器上,頁面加載之前的長延遲不會發生,但用戶可以看似隨機地註銷。

這裏發生了什麼?我怎樣才能找出代碼的哪一部分導致了很長的加載時間?什麼導致了隨機註銷?

PHP代碼(控制器)

function index() { 
    $this->load->module('auth'); 
    if(!$this->auth->tank_auth->is_logged_in()) { 
     redirect('login'); 
    } 
// If user registered/logged in after landing on another page 
    if($this->session->userdata('entry_url')) { 
     $entry_url = $this->session->userdata('entry_url'); 
     $this->session->unset_userdata('entry_url'); 
     redirect($entry_url); // redirect back to entry url before registration/login 
    } 

    // Set User Session Variables 
    $user_id = $this->session->userdata('user_id'); 
    $this->load->model('main_model'); 
    $name = $this->main_model->get_user_first_last_name($user_id); 
    $this->session->set_userdata('first_name', $name['first_name']); 
    $this->session->set_userdata('last_name', $name['last_name']); 

    $this->load->view('main'); 

的config.php

$config['sess_cookie_name']  = 'cisession'; 
$config['sess_expiration']  = 0; 
$config['sess_expire_on_close'] = FALSE; 
$config['sess_encrypt_cookie'] = FALSE; 
$config['sess_use_database'] = TRUE; 
$config['sess_table_name']  = 'ci_sessions'; 
$config['sess_match_ip']  = FALSE; 
$config['sess_match_useragent'] = TRUE; 
$config['sess_time_to_update'] = 300; 

$config['cookie_prefix'] = ""; 
$config['cookie_domain'] = ""; 
$config['cookie_path']  = "/"; 
$config['cookie_secure'] = FALSE; 
+0

我經常看到同事的代碼這種行爲,解決的辦法是經常不使用PHP的會話的所有(因爲他們鎖定的腳本的整個運行時間的會話文件),而使用代碼從內存緩存的讀取開始,然後在末尾寫入memcache,兩者之間沒有鎖定。 – 2012-04-06 03:57:41

+0

可能的重複[簡單的方法來分析一個PHP腳本](http://stackoverflow.com/questions/21133/simplest-way-to-profile-a-php-script) – Amber 2012-04-06 04:53:45

回答

0

您的問題都基本上是要求我們告訴你如何調試代碼。如果你需要查看腳本的時間安排,引入一些microtime()調用並輸出差異以獲得相當準確的執行時間。

對於隨機註銷的,有真正的任何方式,任何人幫助沒有看到源代碼,您應該範圍縮小的東西,豈止「這可能是造成這一點。」任何事情都可能導致它,我們沒有辦法在沒有更多信息的情況下提供相關的見解。

Also, what have you tried?

相關問題