2011-09-09 11 views
6

मैं एक ऐसे अनुप्रयोग पर काम कर रहा हूं जिसके लिए एक खोज फ़ॉर्म पर स्वत: पूर्ण फ़ील्ड की आवश्यकता है। आवेदन रेलो 3.3 पर सीएफएमएल है। मैं jQuery यूआई स्वत: पूर्ण उपयोग कर रहा हूँ और इस तरह सर्वर साइड पर देखने को लागू किया है:क्वेरी करने के लिए क्वेरी कैशिंग jQuery स्वत: पूर्ण

private struct function getStationDetails(required numeric uic) 
{ 
    var qryCacheStations = new query(); 
    var qryStations = new query(); 
    var cacheData = ""; 
    var resultData = ""; 
    var stcResult = {}; 

    qryCacheStations.setDatasource(variables.instance['dataSource']);  
    qryCacheStations.setSQL("select distinct uic, name, crs from stations order by name"); 
    qryCacheStations.setCachedwithin(createTimeSpan(1,0,0,0)); 
    cacheData = qryCacheStations.execute().getResult(); 

    qryStations.setDBType("query"); 
    qryStations.setAttributes(srcTbl = cacheData); 
    qryStations.setSQL("select name, crs from srcTbl where uic = :uic"); 

    qryStations.addParam(name="uic",value=arguments.uic,CFSQLType="CF_SQL_INTEGER"); 

    resultData = qryStations.execute().getResult(); 

    stcResult = { 
     name = resultData['name'][1], 
     crs = resultData['crs'][1] 
    } 

    return stcResult; 
} 

असल में मैं पहली बार देखने पर कैश में पूरे स्टेशन सूची लोड कर रहा हूँ, एक 1 दिन की अवधि वाली (डेटा शायद ही कभी बदलता है), फिर प्रासंगिक परिणामों को वापस क्लाइंट को वापस करने के लिए प्रश्नों की एक क्वेरी का उपयोग कर।

मेरा प्रश्न बस यह है; क्या यह आक्रामक कैशिंग और क्यूओक्यू तकनीक एक अच्छा पैटर्न है? प्रदर्शन अच्छा लगता है और मेमोरी पदचिह्न उचित है (डेटा सेट काफी छोटा है), इसलिए यह ठीक लगता है लेकिन मैं उन लोगों से कोई सलाह ढूंढ रहा हूं जिन्होंने शायद पहले कोशिश की है और समस्याओं की खोज की है?

किसी भी विचार की बहुत सराहना की जाएगी।

+0

मुझे लगता है कि आपने इसे नाखुश किया :)। मैं हर समय इसका इस्तेमाल करता हूं। –

+0

क्या रेलो में कैशपूट() और कैशगेट() है? जब कैश – Henry

+0

@ हेनरी फ्लश करने का समय होता है तो कैश्डविथिन अधिक लचीला हो सकता है - इसमें वास्तव में कैशपूट() और कैशगेट() होता है। मैं उन कैशिंग कार्यों का उपयोग अन्य प्रकार के डेटा के लिए ईएचसीएच के साथ कर रहा हूं लेकिन क्वेरी कैश सीधे डीबी कैशिंग के लिए बहुत अच्छा है। इसके अलावा, रेलो टैग का समर्थन करता है जो आपको आवश्यक होने पर क्वेरी कैश को फ़्लश करने की अनुमति देता है। –

उत्तर

1

आप jQuery के स्वत: पूर्ण उपयोग कर सकते हैं

cacheLength: संख्या

तो सर्वर के लिए कॉल की संख्या कम किया जा सकता है और प्रदर्शन

0

सुधार किया जा सकता ग्राहक के पक्ष में सक्षम कैशिंग सेट करने के लिए मैंने बड़ी सफलता के साथ इस सटीक तकनीक का उपयोग किया।

आप निश्चित रूप से सही काम कर रहे हैं, यह मानते हुए कि आपका डेटा अप्रत्याशित रूप से नहीं बढ़ता है।

संबंधित मुद्दे