2009-03-14 14 views
13

मेरे पास लगभग 250 पंक्तियां (6 महीने के भीतर दोगुनी हो सकती हैं), और this page पर 50 कॉलम (चेतावनी: आईई के साथ धीमी) है। मैं JQuery Table sorter का उपयोग कर रहा हूं। लेकिन यह आईई 7 के साथ बहुत धीमी है: यह धीमी जावास्क्रिप्ट के बारे में चेतावनी देता है, और पूछता है कि क्या मैं इसे रोकना चाहता हूं। मैं प्रदर्शन में सुधार करने में बहुत समय खर्च किया है, तो यह सभी अन्य ब्राउज़र के लिए ठीक काम करता है:फास्ट जावास्क्रिप्ट टेबल सॉर्टर?

  • तरह पाठ और अंकों केवल
  • सभी लेकिन 2 पारसर्स हटाया
  • एक अतिरिक्त तालिका कि सभी शामिल हैं बनाया मूल्यों, प्रत्येक कोशिका के लिए
  • हटाया लोअरकेस node.textContent() की तुलना में बहुत तेजी से, ट्रिम आदि

जावास्क्रिप्ट का मेरा संस्करण here है। मुझे लगता है कि मैं इसे और अधिक अनुकूलित नहीं कर सकता। मैं एक टेबल सॉर्टर के एक और तेज़ कार्यान्वयन की तलाश में हूं, या कोई भी अच्छा अनुकूलन जो मैं भूल गया था, ताकि आईई 7 निष्पादन समय के बारे में शिकायत नहीं करेगा।

संपादित करें: मैं 35 स्तंभों पर विकलांग छंटाई है, यह अभी भी बहुत लंबा आईई

+1

आप एक घोड़े पर एक लाइटर जॉकी रख सकते हैं लेकिन कुछ बिंदु पर घोड़ा केवल इतनी तेजी से जा सकते हैं। – cletus

उत्तर

7

मैं sorttable का उपयोग एक बेहद तेज़ टेबल सॉर्ट जावास्क्रिप्ट लाइब्रेरी का उपयोग करता हूं। (JQuery नहीं)

+0

मैंने इसे अतीत में उपयोग किया है और यह वास्तव में अच्छी तरह से काम करता है। कुछ बार आपको तिथियों के लिए अपने कस्टम विशेषताओं का उपयोग करना पड़ता है, लेकिन समग्र रूप से यह बहुत ठोस है। – hunter

+0

बहुत अच्छी लाइब्रेरी लेकिन अगर मैं सॉर्ट करने के लिए सभी शीर्षकों का उपयोग नहीं करना चाहता हूं तो क्या होगा? – Sarah

+1

साइट अब और नहीं है ... – corymathews

1

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

लेकिन यहां कहानी का नैतिक यह है कि आपकी तालिका काफी बड़ी है। आप टेबल पेजिंग और सॉर्टिंग और कुछ सर्वर-साइड लॉजिक के साथ आरईएसटी का उपयोग करने के बारे में सोच सकते हैं। मुझे लगता है कि यह बहुत तेज हो सकता है और JQuery के साथ ठीक काम करेगा। (और यह अभी भी एक AJAX समाधान है।) यह आपको कुछ बैंडविड्थ भी बचा सकता है ...

आशा है कि इससे मदद मिलती है।

0

सबसे खराब चीजों में से एक है eval() का उपयोग करना और मैं आपके कोड में देखता हूं। आपको अपना कोड प्रोफाइल करना चाहिए और देखें कि बाधा कहां है।

+0

अपडेट किया है कि eval() ऐसा लगता है कि इसे प्रति बार एक बार कहा जाता है .. लेकिन ऐसा लगता है कि यह कुछ बदसूरत कर रहा है। –

-1
समारोह buildCache (टेबल) में

समस्या लाइन 219 त्रुटि: 'all_data' परिभाषित

1

गैर applyWidget और उनके संबंधित बाइंडिंग का कोई भी संदर्भ बाहर टिप्पणी करते अप्रयुक्त पारसर्स को दूर करने के साथ ही एक बड़ा अंतर 500 करने के लिए बनाया आईई 6 में पंक्ति तालिका (हाँ, मुझे पता है, लेकिन यह अभी भी मर नहीं जाएगा)।

+0

यह विगेट्स के बारे में स्पष्ट है, लेकिन यू के किस प्रकार के पार्सर्स का मतलब है? –

2

मैं ईसाई बाख के jQuery तालिका सॉर्टर के एक बड़े प्रशंसक हूँ ... http://tablesorter.com/docs/

  • एकाधिक स्तंभों पर कॉम्पैक्ट और तेजी से
  • क्रमबद्ध
  • गतिशील ज़ेबरा धारी
  • वैकल्पिक मेटाडाटा विस्तार बातें बनाता है यहां तक ​​कि
  • पाठ, एचटीएमएल, संख्याओं को क्रमबद्ध करने के लिए पार्सर्स, जो भी (अनुकूलित करने में आसान)
  • सीएसएस स्टाइल करने योग्य शीर्षलेख (बेशक)
  • क्रॉस-ब्राउज़र: आईई 6।0+, एफएफ 2 +, सफारी 2.0 +, ओपेरा 9.0+

enter image description here

संपादित: कोई भी tablesorter में रुचि देखना चाहिए क्या Mottie इसके साथ किया है: https://github.com/Mottie/tablesorter

+0

अंतिम कोड परिवर्तन 2008 से है क्या यह नवीनतम jQuery के साथ संगत है? – powtac

+1

मुझे लगता है कि वह इसे बनाए रखने में बहुत व्यस्त रहा है, लेकिन मॉटी ने jQuery 1.9 के लिए अपडेट सहित कोड के साथ अविश्वसनीय काम किया है ... https://github.com/Mottie/tablesorter – neokio

+0

नए लिंक के लिए धन्यवाद! अकेले मोटी लिंक के लिए – powtac

0

एक महान और मजबूत विकल्प यह jQuery प्लगइन है, जिसे DataTables कहा जाता है।

  • चर लंबाई पृष्ठांकन
  • ऑन-द-मक्खी छानने
  • मल्टी स्तंभ डेटा प्रकार का पता लगाने के साथ छँटाई
  • स्तंभ की स्मार्ट हैंडलिंग
  • प्रदर्शन डेटा लगभग किसी भी डेटा स्रोत डोम, जावास्क्रिप्ट से चौड़ाई सरणी, अजाक्स फ़ाइल और सर्वर-साइड प्रसंस्करण (PHP, सी #, पर्ल, रूबी, एआईआर, गियर्स इत्यादि)
  • तालिका व्यूपोर्ट के लिए स्क्रॉलिंग विकल्प
  • पूरी तरह से internationalisable
  • jQuery यूआई ThemeRoller समर्थन
  • रॉक ठोस - 2900 यूनिट का एक सूट द्वारा समर्थित
  • प्लग इन इंक के वृहद प्रकार परीक्षण करती है। संपादक, टेबलटूल, फिक्स्ड कॉलम और और
  • यह मुफ़्त है!
0

आप को गंभीरता से विशाल डाटाबेस के साथ काम कर रहे हैं, तो DataTables (jQuery प्लगइन) के साथ सर्वर साइड का प्रयास करें।

मूल रूप से सभी पेजिंग, फ़िल्टरिंग, सॉर्टिंग आदि जो डेटाटेबल्स को किसी सर्वर (या किसी अन्य डेटा स्रोत) को सौंप दिया जा सकता है।

पूर्ण यहाँ उदाहरण: http://datatables.net/examples/data_sources/server_side.html

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