Changeset 8186


Ignore:
Timestamp:
07/18/13 11:48:14 (11 years ago)
Author:
cristiano
Message:

Ticket #3456 - Otimização tempo de carregamento no modulo expresso Mail

Location:
trunk/expressoMail1_2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/inc/class.imap_functions.inc.php

    r8167 r8186  
    4242        var $useCache = false; 
    4343        var $expirationCache = false; 
    44  
     44    var $msgIds = array();// Usado para guardar o messagesIds 
    4545         
    4646        function imap_functions (){ 
     
    271271                    } 
    272272                    $return['num_msgs'] =  $num_msgs;    
    273                 } else { 
     273                } 
     274        else 
     275        { 
    274276                        $num_msgs = imap_num_msg($this->mbox); 
    275277                        $sort_array_msg = $this-> get_msgs($folder, $sort_box_type, $search_box_type, $sort_box_reverse,$msg_range_begin,$num_msgs); 
    276278 
    277  
    278279                        $return['tot_unseen'] = 0; 
    279280                        $i = 0; 
    280281 
    281                         if(is_array($sort_array_msg)){ 
    282  
    283                             foreach($sort_array_msg as $msg_number => $value) 
    284                             { 
    285                                 $temp = $this->get_info_head_msg($msg_number); 
    286                                 if(!$temp) 
    287                                     return false; 
    288  
    289                                 if($temp['Unseen'] == 'U' || $temp['Recent'] == 'N'){ 
    290                                                 $return['tot_unseen']++; 
    291                                         } 
    292  
    293                                 if($i <= ($msg_range_end-$msg_range_begin)) 
    294                                     $return[$i] = $temp; 
    295                                 ++$i; 
    296                             } 
    297                         } 
    298                         $return['num_msgs'] = count($sort_array_msg)+($msg_range_begin-1); 
     282            if(is_array($sort_array_msg)) 
     283            { 
     284                foreach($sort_array_msg as $msg_number => $value) 
     285                { 
     286                    $temp = $this->get_info_head_msg($msg_number); 
     287                    if(!$temp) 
     288                        return false; 
     289 
     290                    if($temp['Unseen'] == 'U' || $temp['Recent'] == 'N') 
     291                        $return['tot_unseen']++; 
     292 
     293                    if($i <= ($msg_range_end-$msg_range_begin)) 
     294                        $return[$i] = $temp; 
     295 
     296                    ++$i; 
    299297                } 
    300                                                  
    301                 return $return;  
     298            } 
     299 
     300            $return['num_msgs'] = count($sort_array_msg)+($msg_range_begin-1); 
     301        } 
     302 
     303        $return['messagesIds'] = $this->msgIds; 
     304        return $return; 
    302305    } 
    303306         
     
    34493452                        $sort = array(); 
    34503453                } 
     3454 
     3455        $this->msgIds = $sort; 
     3456 
    34513457                if ($slice_array) 
    34523458                        $sort = array_slice($sort,$offsetBegin-1,$offsetEnd-($offsetBegin-1),true); 
  • trunk/expressoMail1_2/js/draw_api.js

    r8182 r8186  
    658658 
    659659var handler_draw_box = function(data){ 
     660    populateSelectedMsgs(data.messagesIds); 
    660661        draw_box(data, 'INBOX', true); 
    661662        //alternate_border(0); 
     
    670671                var handler_draw_box = function(data) 
    671672                { 
    672  
     673            populateSelectedMsgs(data.messagesIds); 
    673674                        if(!verify_session(data)) 
    674675                                return; 
     
    686687                        return true; 
    687688                } 
     689 
    688690                //MAILARCHIVE 
    689691        //se for pasta local 
    690692        if (/^local_messages/.test(current_folder)) { 
    691693            $(".folders-loading").removeClass("folders-loading"); //remove o icone de loading ao clicar nas pastas locais 
    692         } 
    693         else { //se não, processamento normal da pasta 
    694                 $.ajax({ 
    695                 async: false, 
    696                         url: "controller.php?" + $.param( {action: "$this.imap_functions.getMessagesIds",  
    697                                 folder: folder, 
    698                                  msg_range_begin: "0", 
    699                                  msg_range_end: "0",                                     
    700                                 sort_box_type: "SORTARRIVAL",  
    701                                 search_box_type: search_box_type, 
    702                                 sort_box_reverse: "1" 
    703                                 }), 
    704                         success: function(data){ 
    705                                 data = connector.unserialize(data); 
    706                                 if(data){ 
    707                                         var _data = {}; 
    708                                         $.each(data,function(index,value){ 
    709                                                 if (data[index]){ 
    710                                                         _data[data[index]] = data[index]; 
    711                                                 } 
    712                                         }); 
    713                                         populateSelectedMsgs(_data); 
    714                                 } 
    715                         }, 
    716                         beforeSend: function( jqXHR, settings ){ 
    717                                 connector.showProgressBar(); 
    718                         }, 
    719                         complete: function( jqXHR, settings ){ 
    720                                 connector.hideProgressBar(); 
    721                         } 
    722                 }); 
    723694        } 
    724695                proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort_box_type,search_box_type,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box); 
     
    23552326        var message_header = Element("message_header_"+search); 
    23562327        var handler_draw_box = function(data){ 
    2357                 draw_box(data, current_folder,true); 
     2328 
     2329        if (typeof(clean_selected) == "undefined") 
     2330            populateSelectedMsgs(data.messagesIds); 
     2331 
     2332        draw_box(data, current_folder,true); 
    23582333                //Mostrar as msgs nao lidas de acordo com o filtro de relevancia 
    23592334        var msgs_unseen = 0; 
     
    23762351        sort_box_type = sort; 
    23772352        search_box_type = search; 
    2378  
    2379         if (typeof(clean_selected) == "undefined"){      
    2380         $.ajax({                         
    2381                         url: "controller.php?" + $.param( {action: "$this.imap_functions.getMessagesIds",  
    2382                                 folder: get_current_folder(),                                    
    2383                                 sort_box_type: "SORTARRIVAL",  
    2384                                 search_box_type: search_box_type, 
    2385                                 sort_box_reverse: "1" 
    2386                                 }), 
    2387                         success: function(data){ 
    2388                                 data = connector.unserialize(data); 
    2389                                 if(data){ 
    2390                                         var _data = {}; 
    2391                                         $.each(data,function(index,value){ 
    2392                                                 if (value){ 
    2393                                                         _data[index] = value; 
    2394                                                 } 
    2395                                         }); 
    2396                                         populateSelectedMsgs(_data);                             
    2397                                 } 
    2398                         } 
    2399                 }); 
    2400         }        
    24012353 
    24022354        proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort,search,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box); 
  • trunk/expressoMail1_2/js/main.js

    r8167 r8186  
    171171    } 
    172172 
    173     //cExecute ("$this.db_functions.get_dropdown_contacts", save_contacts); //Save contacts needs preferences. 
    174     $.ajax({ 
    175         async: false, 
    176         url: "controller.php?" + $.param( {action: "$this.imap_functions.getMessagesIds", 
    177             folder: get_current_folder(), 
    178              msg_range_begin: "0", 
    179              msg_range_end: "0", 
    180             sort_box_type: "SORTARRIVAL", 
    181             search_box_type: search_box_type, 
    182             sort_box_reverse: "1" 
    183             }), 
    184         success: function(data){ 
    185             data = connector.unserialize(data); 
    186             if(data){ 
    187                 var _data = {}; 
    188                 $.each(data,function(index,value){ 
    189                     if (data[index]){ 
    190                         _data[data[index]] = data[index]; 
    191                     } 
    192                 }); 
    193                 populateSelectedMsgs(_data); 
    194             } 
    195         }, 
    196         beforeSend: function( jqXHR, settings ){ 
    197             connector.showProgressBar(); 
    198         }, 
    199         complete: function( jqXHR, settings ){ 
    200             connector.hideProgressBar(); 
    201         } 
    202     }); 
     173//  cExecute ("$this.db_functions.get_dropdown_contacts", save_contacts); //Save contacts needs preferences. 
    203174 
    204175    cExecute ("$this.imap_functions.get_range_msgs2&folder=INBOX&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type=SORTARRIVAL&search_box_type=ALL&sort_box_reverse=1", handler_draw_box); 
Note: See TracChangeset for help on using the changeset viewer.