2010-07-13 13 views
9

मैंने हाल ही में दर्द का थोड़ा सा भाग लिया है। मैं एक वेब ऐप में कुछ कॉन्फ़िगरेशन स्क्रीन प्रदर्शित करने के लिए JQuery संवाद बॉक्स का उपयोग कर रहा हूं। कुछ खास नहीं है। हालांकि मेरे पास कुछ किनारे के मामले हैं जहां यह कॉन्फ़िगरेशन फॉर्म कुछ ड्रॉप डाउन प्रदर्शित करेगा ... 11000 विकल्प। [DODGES ROTTEN TOMATOES]JQuery UI संवाद धीमा

कहने की जरूरत नहीं है, यह धीमा है। JQuery संवाद को दिखाने के लिए इसमें 9 सेकंड तक लग सकते हैं (और init भी धीमा है)।

पहला सवाल यह है: क्या संवाद बॉक्स को गति देने का कोई तरीका है? ऐसा लगता है कि, यह हर बार खुलने पर सभी सामग्री की प्रतिलिपि बनाता है। अगर इससे बचने का कोई तरीका था, तो इससे थोड़ा सा मदद मिलेगी।

दूसरा प्रश्न: क्या कोई अन्य jQuery संवाद बॉक्स है जो बड़ी मात्रा में डेटा प्रदर्शित करने के लिए कहा जाने पर बेहतर प्रदर्शन करता है?

और हमेशा के रूप में, अन्य समाधानों का स्वागत है। कुछ स्वत: पूर्ण AJAX खराब नहीं होगा, लेकिन संभवतः तब तक धीमा हो जाए जब तक कि कम से कम दो प्रारंभिक वर्णों की आवश्यकता न हो।

+3

मैन, यह एक looooong ड्रॉप डाउन सूची है। यहां तक ​​कि यदि आप अपनी तकनीकी समस्या को हल करने में सक्षम हैं, तो भी मैं अलग-अलग नियंत्रण का उपयोग करके फ़िल्टर की गई सूची या किसी प्रकार का डेटा ब्राउज़र का सुझाव दूंगा। डेटा सामग्री के आधार पर। – Tx3

उत्तर

1

प्रदर्शन को बेहतर बनाने के लिए प्रबंधित किया गया। मैं JQuery UI से भटक गया और एक बहुत हल्का संस्करण बनाया। मेरे संवाद में मेरे लक्ष्य की सामग्री की प्रतिलिपि बनाने के बजाय, मैं सामग्री के चारों ओर अपना संवाद बना देता हूं।

प्रदर्शन बुद्धिमान, संवाद 2. के बारे में 10 सेकंड से चला गया

1

एजेक्स के माध्यम से प्राप्त होने वाले सभी संभावित पहले अक्षरों के साथ एक दूसरे चयन में केवल उस पत्र से शुरू होने वाले विकल्पों के साथ कैसे चयन करें?

1

2 सेकंड एक बहुत बेहतर लगता है, लेकिन आप शायद यह बहुत ज्यादा उन ब्राउज़र और सिस्टम config पर निर्भर है मिल जाएगा - यह हो सकता है आईई में धीमी प्रणाली पर बहुत बुरा ...

मैं भारी ड्रॉप-डाउन (जो निश्चित रूप से बहुत उपयोगकर्ता के अनुकूल नहीं हो सकता) के बजाय कुछ और उपयोग करने पर गंभीरता से विचार करना चाहता है - यह एक अच्छे उम्मीदवार की तरह लगता है स्वत: पूर्ण खोज बॉक्स, या शायद बहु-स्तरीय कैस्केडिंग ड्रॉप-डाउन।

तुम भी संवाद पृष्ठ लोड होने, और केवल इसे खोलने जब जरूरत बना सकते हैं (AutoOpen सेट: विकल्पों में गलत)

1

आप एक बूंद की तरह एक संवाद में नीचे करने के लिए है, तो मैं पृष्ठ लोड के बाद जानकारी को एक छिपी हुई div AJAX शैली में लोड करने का सुझाव दें और उसके बाद उस छिपे हुए div को जो भी लाइटबॉक्स/संवाद आप उपयोग कर रहे हों, उसमें प्रदर्शित कर रहे हों। इस तरह सामान लोड हो जाएगा जबकि उपयोगकर्ता अन्य चीजें कर रहा है, और उम्मीद है कि वे उस समय तक तैयार रहेंगे।

+0

प्रारंभिक भार के लिए यह एक अच्छा समाधान होगा। हालांकि लोड बहुत भयानक प्रभावित नहीं था। मुद्दा तब आया जब आईई के लिए ड्रॉप डाउन प्रस्तुत करने का समय था। प्रारंभ में div अदृश्य है और सब कुछ ठीक हो जाता है। सबसे बड़ा मुद्दा यह था कि JQuery UI संवाद बॉक्स को उस सभी जानकारी को डीओएम में कॉपी करने के लिए इसे अपने कस्टम कंटेनर में स्थानांतरित करना था। यह हर बार संवाद लोड होने पर भी ऐसा करता था। नया संवाद अब कॉपी करने के बजाय मौजूदा डेटा को लपेटता है। यह चीजों को थोड़ा सा गति लग रहा था। अर्ध पारदर्शी धोने के साथ संघर्ष किया लेकिन यह अब काफी अच्छी तरह से काम करता है। –

+0

खुशी है कि यह थोड़ा बेहतर काम कर रहा है। –

0

डेटा के प्रदर्शन के लिए आप किस एचटीएमएल का उपयोग कर रहे हैं, इस पर निर्भर करता है, यानी सुपर धीमी बनाम क्रोम या फ़ायरफ़ॉक्स हो सकता है।

खासकर जब आप बड़ी टेबल प्रदर्शित कर रहे हों। ये लिंक उपयोगी हो सकते हैं - आप थोड़ा और समय भी बंद कर सकते हैं।

http://jquery-howto.blogspot.com/2009/02/5-easy-tips-on-how-to-improve-code.html

http://www.artzstudio.com/2009/04/jquery-performance-rules/

2

मैं चेहरा इस समस्या है और यहाँ समाधान नहीं मिला: http://forum.jquery.com/topic/select-in-dialog-causes-slowness-in-ie8

बस false करने के लिए संवाद draggable और resizable विकल्पों को सेट करने के लिए किया था।

+0

मैं ठीक उसी समस्या के साथ कुश्ती करते हुए आपके जवाब पर ठोकर खाई। एक जादू की तरह काम किया! –

+0

वाह, क्या एक अजीब सह-घटनाएं। मुझे एक साल बाद आईई 10 चलाने वाले बॉक्स पर एक ही समस्या हो रही है और पाया कि आकार बदलने योग्य और खींचने योग्य को धीमेपन पर कोई स्पष्ट प्रभाव नहीं पड़ता है। –

1

ड्रैग करने योग्य और झूठी काम करने के लिए आकार बदलने योग्य सेट करना।

+0

मुझे एक ही समस्या है (लेकिन विशाल ड्रॉप-डाउन के बिना) और ड्रैग करने योग्य और झूठ के आकार बदलने योग्य मेरे लिए काम नहीं करता है। –

0

मैं सिर्फ चेक बॉक्स के सैकड़ों के साथ एक टैब वाले संवाद का उपयोग करके इस मुद्दे का सामना किया। मुझे बहुत उपयोगी होने के लिए this link मिला। पहले संवाद खोलने के लिए 17 एस लगाए, लेकिन अब यह लगभग 1.3 के नीचे है।

चाल इससे पहले कि आप संवाद खोलने एचटीएमएल अलग, और फिर सामग्री पुनः अनुलग्न संवाद के लिए खुला समारोह का उपयोग करने के लिए है (मैं एक खींचने योग्य गैर resizeable संवाद उपयोग कर रहा हूँ)।

$('#triggerDialogFast').click(function() { 
    var $dialogContainer = $('#dialogContentFast'); 
    var $detachedChildren = $dialogContainer.children().detach(); 
    $dialogContainer.dialog({ 
     width: 425, 
     height: 400, 
     draggable: false, 
     resizable: false, 
     open: function() { 
      $detachedChildren.appendTo($dialogContainer); 
     }, 
    }); 
}); 

मैं सुनिश्चित नहीं हूं लेकिन यह शायद सिर्फ खुला समारोह में एचटीएमएल संलग्न द्वारा काम करना चाहिए कि अगर आपके परिदृश्य में संभव है।

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