2016-06-01 13 views
0

Ich benutze Code Zünder Frame Arbeit und ich fand zu viel Ladezeit für eine Seite.Die anderen Seiten sind normale Geschwindigkeit und wenn ich den Profiler für die langsame Seite habe ich die gefunden folgendes Ergebnis:Ladezeit ist sehr viel für Code-Zünder Webseite

**BENCHMARKS 
Loading Time: Base Classes  0.0090 
Controller Execution Time (Home/Index)  3.6712 
Total Execution Time 3.6802 
MEMORY USAGE 
7,404,176 bytes 
DATABASE: db202519_sdemo QUERIES: 244** 

<?php 
function getAllAd_bymotorcars($serach_data,$order,$limit = '',$offset = ''){ 
    $twoMonths=strtotime("-3 months", time()); 
    $this->db->cache_on(); 
     $q = ' SELECT * FROM place_ad'; 
     if(isset($serach_data['photos']) && $serach_data['photos'] !=""){  
     $q .= ' JOIN place_ad_gallery ON place_ad.id_place_ad = place_ad_gallery.id_place_ad'; 
     } 
     $q .= ' WHERE place_ad.deleted = 0 AND place_ad.status = "active"'; 
     $q .= ' AND place_ad.id_sub_categories = 1'; 
     $q .= ' AND place_ad.id_categories = 1'; 

    if(isset($serach_data['countries']) && $serach_data['countries'] !=""){ 
    $q .= ' AND place_ad.id_countries = '.$serach_data['countries']; 
    } 
    if(isset($serach_data['cities']) && $serach_data['cities'] !=""){ 
     $q .= ' AND place_ad.id_cities = '.$serach_data['cities']; 
    } 
    if(isset($serach_data['area']) && $serach_data['area'] !=""){ 
     $q .= ' AND place_ad.id_area = '.$serach_data['area']; 
    } 
    if(isset($serach_data['sub_categories']) && $serach_data['sub_categories'] !=""){ 
     $q .= ' AND place_ad.id_sub_categories = '.$serach_data['sub_categories']; 
    } 
    if(isset($serach_data['sub_categories2']) && $serach_data['sub_categories2'] !=""){ 
     $q .= ' AND place_ad.id_sub_categories2 = '.$serach_data['sub_categories2']; 
    } 
    if(isset($serach_data['sub_categories3']) && $serach_data['sub_categories3'] !=""){ 
     $q .= ' AND place_ad.id_sub_categories3 = '.$serach_data['sub_categories3']; 
    } 
    if((isset($serach_data['price_from']) && $serach_data['price_from'] !="") && (isset($serach_data['price_to']) && $serach_data['price_to'] !="")){ 
     $q .= ' AND place_ad.price_aed BETWEEN '.$serach_data['price_from'].' AND '.$serach_data['price_to']; 
    } else{ 
    if(isset($serach_data['price_from']) && $serach_data['price_from'] !=""){ 
     $q .= ' AND place_ad.price_aed >= '.$serach_data['price_from']; 
    } 
    if(isset($serach_data['price_to']) && $serach_data['price_to'] !=""){ 
     $q .= ' AND place_ad.price_aed <= '.$serach_data['price_to']; 
    } 
    } 
    if(isset($serach_data['adress_ad']) && $serach_data['adress_ad'] !=""){ 
     $adress_ad=$serach_data['adress_ad']; 
     $q .= " AND place_ad.title LIKE '%$adress_ad%'";  
    } 
    if(isset($serach_data['age']) && $serach_data['age'] !=""){ 
     $q .= ' AND place_ad.age = '.$serach_data['age']; 
    } 

    if(isset($serach_data['condition']) && $serach_data['condition'] !=""){ 
     $q .= ' AND place_ad.condition = '.$serach_data['condition']; 
    } 
     if(isset($serach_data['warranty']) && $serach_data['warranty'] !=""){ 
     $q .= ' AND place_ad.warranty = '.$serach_data['warranty'];  
    } 
    if(isset($serach_data['ads_posted']) && $serach_data['ads_posted'] !=""){ 
$date_to = date('Y-m-d'); 

$date_from = strtotime(date('Y-m-d')); 
$case = $serach_data['ads_posted']; 
switch($case) { 
    case 0: 
     $date_from = strtotime('0 days',$date_from); 
     break; 
    case 3: 
     $date_from = strtotime('-3 days',$date_from); 
     break; 
    case 7: 
     $date_from = strtotime('-7 days',$date_from); 
     break; 
    case 14: 
     $date_from = strtotime('-14 days',$date_from); 
     break; 
    case 30: 
     $date_from = strtotime('-30 days',$date_from); 
     break; 
    case 90: 
     $date_from = strtotime('-90 days',$date_from); 
     break; 
    case 190: 
     $date_from = strtotime('-190 days',$date_from); 
     break; 
} 
$date_from = date('Y-m-d',$date_from); 
    $q .= ' AND place_ad.created_date >= "'.$date_from.'" AND place_ad.created_date <= "'.$date_to.'"'; 
    } 
     if(isset($serach_data['photos']) && $serach_data['photos'] !=""){  
     $q .= ' AND place_ad_gallery.image!="" '; 
     } 
     //$q .= ' GROUP BY place_ad.id_place_ad'; 
     if(isset($serach_data['photos']) && $serach_data['photos'] !=""){  
     $q .= ' GROUP BY place_ad_gallery.id_place_ad'; 
     } 
     $q .= ' ORDER BY '.$order; 
    if($limit != '') 
    $q .= ' LIMIT '.$limit.' OFFSET '.$offset; 
    $query = $this->db->query($q); 
    //echo $this->db->last_query();exit; 
     if($limit == '') 
     return $query->num_rows(); 
     else 
     return $query->result_array(); 
} 
?> 

die obige Funktion in der Steuerung verwendet, um alle diese info.While zu holen durch die Funktion steht vor der Seite Passieren die Lade Problem.

Wie kann ich die Ladegeschwindigkeit für diese Seite erhöhen?

+1

Hier ist Ihr Problem 'QUERIES: 244 **'. Versuchen Sie, die Anzahl der Abfragen zu reduzieren und das Abfrageergebnis zwischenzuspeichern, um die Ladezeit zu verringern. – Kamran

+1

Verbinden Sie sich nicht mit der Datenbank, um Benutzereigenschaften zu erhalten. Speichern Sie sie bei der Anmeldung in einer Sitzung. – Bira

Antwort