Ignore:
Timestamp:
01/06/09 16:43:13 (15 years ago)
Author:
niltonneto
Message:

Resolve #379

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/js/connector.js

    r446 r569  
    154154                                        return null; 
    155155                        } 
    156          
     156 
    157157                        return str_data; 
    158158                } 
     
    268268                                        break; 
    269269                        } 
    270                          
    271270                        return data; 
    272271                } 
     
    345344                                                                        document.getElementById("debug_controller").innerHTML += oxmlhttp.responseText; 
    346345                                                                        document.getElementById("debug_controller").innerHTML += "<br>-------------------------------------------------------------------------------------<br>"; 
    347                                                                 }                                                                        
     346                                                                } 
    348347                                                                handler(data); 
     348                                                                addToCache(id,data); 
    349349                                                                delete _thisObject.requests[id];                                                                 
    350350                                                                _thisObject.requests[id] = null; 
     
    475475        var id = null; 
    476476 
     477        var connectorCache = { 
     478                'valid' : [], 
     479                'result' : [] 
     480        }; 
     481        var acertos = 0; 
     482        var naoacertos = 0; 
     483        var expurgatedCache = new Array(); // Data to purge from cache 
     484 
     485        function queryConnectorCache(url,handler){ 
     486                if (connectorCache.valid[url]) 
     487                { 
     488                        handler(connectorCache.result[url]); 
     489                        return true; 
     490                } 
     491                else 
     492                        return false; 
     493        } 
     494        function purgeCache(){ 
     495                var i; 
     496                for (i=0; i<= expurgatedCache.length; i++) 
     497                { 
     498                        connectorCache.valid[expurgatedCache[i]] = false; 
     499                        delete connectorCache.result[expurgatedCache[i]]; 
     500                } 
     501        } 
     502        function addToCache(id,data){ 
     503                if (preferences.use_cache != 'True') 
     504                        return false; 
     505                var func = id.substr(id.lastIndexOf('.')+1); 
     506                if (func.indexOf('&') > 0) 
     507                        func = func.substr(0,func.indexOf('&')); 
     508                switch (func){ 
     509                        // functions that enters in cache 
     510                        case 'get_preferences': 
     511                        case 'getSharedUsersFrom': 
     512                        case 'get_organizations': 
     513                        case 'get_catalogs': 
     514                        case 'get_dropdown_contacts': 
     515                        case 'get_cc_contacts': 
     516                        case 'get_cc_groups': 
     517                        case 'get_info_msg': 
     518                        case 'getUsersByEmail': 
     519                        case 'br': 
     520                        case 'search_for': 
     521                        case 'quicksearch': 
     522                                connectorCache.valid[id] = true; 
     523                                connectorCache.result[id] = data; 
     524                                break; 
     525                        // function that needs expire 
     526                        case 'get_range_msgs2': 
     527                        case 'get_folders_list': 
     528                        case 'search_msg': 
     529                                connectorCache.valid[id] = true; 
     530                                connectorCache.result[id] = data; 
     531                                var i = expurgatedCache.length; 
     532                                expurgatedCache[i+1] = id; 
     533                                break; 
     534                        //functions that expires the cache 
     535                        case 'move_messages': 
     536                        case 'getReturnExecuteForm': 
     537                        case 'set_messages_flag': 
     538                                purgeCache(); 
     539                        default: // no cache 
     540                                break; 
     541                } 
     542        } 
     543 
    477544        //      Function executes AJAX 
    478545        //      cExecute (url, handler, params) 
     
    490557                        return; 
    491558                } 
    492                  
     559 
    493560                url = DEFAULT_URL + url; 
    494                          
    495                 if(params)                
     561 
     562                if (queryConnectorCache(url,handler)) 
     563                        return; 
     564 
     565                if(params) 
    496566                        method = "POST"; 
    497                                  
    498                  else  
     567                else 
    499568                        method = "GET"; 
    500                           
    501                  id = url; 
     569 
     570                id = url; 
    502571                connector.newRequest(id, url, method, handler, params); 
    503572        } 
    504          
    505         // This function executes submit values to Controller (POST) 
     573 
     574// This function executes submit values to Controller (POST) 
    506575        // The return is void. 
    507576        //      cExecuteForm (url, form) 
Note: See TracChangeset for help on using the changeset viewer.