2013-02-19 14 views
6

मैं स्वादिष्ट बुकमार्क के लिए क्रोम एक्सटेंशन लिख रहा हूं। मेरी background.js फ़ाइल ब्राउज़र पर बुकमार्क खोलती है और उचित पेड़ बनाने के लिए जेएसटी के लिए आवश्यक ऑब्जेक्ट बनाता है।जेएसटीआई सॉर्ट फ़ंक्शन हास्यास्पद रूप से धीमा

यदि मैं jsTree की सॉर्ट प्लगइन अक्षम करता हूं, तो जब मैं पॉपअप पर क्लिक करता हूं तो बुकमार्क तत्काल दिखाई देते हैं। यदि मैं सॉर्ट फ़ंक्शन सक्षम करता हूं तो डेटा के क्लिक और प्रदर्शित करने के बीच ~ 2 सेकंड की देरी होती है।

मैंने पृष्ठभूमि स्क्रिप्ट में अपने सभी डेटा को पूर्व-क्रमबद्ध करने और इसे पॉपअप प्री-सॉर्टेड में पास करने का प्रयास किया, लेकिन जेएसटी इस सॉर्ट किए गए डेटा का सम्मान नहीं करता है।

मेरे पास केवल ~ 9 0 टैग और ~ 400 बुकमार्क्स हैं। क्या कोई कॉन्फ़िगरेशन विकल्प है जिसका उपयोग मैं इसे तेज़ी से करने के लिए कर सकता हूं? यहां मेरी जेएसटी जैसी दिखती है।

$('#jstree').jstree({ 
    'close_all': -1, 
    'core': { 
     'animation': 0 
    }, 
     'json_data': { 
     'async': true, 
     'data': data 
    }, 

    'progressive_render': true, 
    'themes': { 
     'theme': 'classic', 
     'dots': false, 
     'icons': true 
    }, 

    'sort': function (a, b) { 
     return this.get_text(a) > this.get_text(b) ? 1 : -1; 
    }, 

    'types': { 
     'valid_children': [ 'folder' ], 
     'types': { 
      'folder': { 
       'valid_children': [ 'file' ], 
       'max_depth': 1 
      }, 
     } 
    }, 

    'plugins': [ 
     'json_data', 
     'themes', 
     'sort', 
     'types', 
    ] 
}); 
+0

बस एक टिप्पणी: मुझे नहीं पता कि तुम्हारा धीमा क्यों है, लेकिन मैं एक सर्वर साइड कॉल के साथ जेस्ट्री चला रहा हूं जो कम से कम 300 फाइलों को एक बार घुमाता है - और एचटीएमएल लौटाता है - और फिर मैं सभी के माध्यम से लूप करता हूं एचटीएमएल '$ .each' के साथ और यह एक सेकंड से भी कम समय में आता है। मेरा मुद्दा यह है कि समस्या कहीं और झूठ बोल सकती है। – user1167442

+0

अन्य विकल्पों को जोड़ने के बजाय, प्रत्येक विकल्प को अक्षम करने का प्रयास करें, बस यह देखने के लिए कि क्या यह तेज़ी से हो जाता है ... उदा। सॉर्ट फ़ंक्शन को अक्षम करने का प्रयास करें, क्योंकि आपके पास यह पूर्व-क्रमबद्ध है ... –

+0

'this.get_text'' क्या कर रहा है? शायद यह महंगा काम है? – mitchfuku

उत्तर

2

jsTree तो केवल बात यह है कि सुधार किया जा सकता get_text के लिए कॉल है, देशी सरणी sort विधि का उपयोग करता है, लेकिन मुझे शक है कि बहुत जल्दी मिल सकता है।

यदि आपके पास अपना डेटा प्रीपोर्ट किया गया है - तो बस अपने plugins कॉन्फ़िगरेशन सरणी से सॉर्ट प्लगइन को हटा दें। सॉर्ट प्लगइन को "पता" करने का कोई तरीका नहीं है कि डेटा पहले ही सॉर्ट किया गया है, बस प्लगइन को हटा दें।

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