2010-05-27 13 views
11

मैं एक jQtouch ऐप विकसित कर रहा हूं और AJAX के माध्यम से किए गए प्रत्येक अनुरोध को लोड की गई सामग्री के लिए दस्तावेज़ में एक नया div बनाता है। केवल एक ही div किसी भी समय दिखाया गया है।डोम धीमा होने से पहले कितने div हो सकते हैं और अस्थिर हो जाते हैं?

ऐप को उत्तरदायी और धीमा होने से पहले कितने divs हो सकता है?

किसी के पास इस पर कोई विचार है?

संपादित करें: इसका एक iPad ऐप्लिकेशन सफारी पर चल रहा है, और यह कम 1000 से div के होगा बहुत ही बुनियादी सामग्री

+6

टेस्ट। तो आप जान लेंगे। –

उत्तर

7

ईमानदारी से कहूं तो, अगर आप वास्तव में इस सवाल का एक निरपेक्ष जवाब की जरूरत है, तो आप अपने डिजाइन पर पुनर्विचार कर सकते हैं।

कोई जवाब यहाँ दी सही हो जाएगा, के रूप में यह कई कारकों है कि आपके आवेदन के लिए विशिष्ट हैं पर निर्भर करता है। जैसे भारी बनाम छोटे सीएसएस उपयोग, divs का आकार, प्रति div आवश्यक वास्तविक ग्राफिक्स प्रतिपादन की मात्रा, लक्ष्य ब्राउज़र/मंच, डीओएम घटना श्रोताओं आदि की संख्या ..

सिर्फ इसलिए कि आप इसका मतलब यह नहीं कर सकते कि आपको !

:-)
1

साथ एक विशेष वातावरण को परिभाषित करने के बिना, यह संभव नहीं है आपके प्रश्न का उत्तर है।

और फिर भी, कुछ भी किसी को भी बताता है कि सिर्फ एक अनुमान है। आपको विभिन्न ब्राउज़रों और हार्डवेयर के साथ वास्तविक दुनिया कॉन्फ़िगरेशन पर अपना स्वयं का परीक्षण करने की आवश्यकता है। आपको "बहुत धीमी" का अर्थ भी तय करने के लिए कुछ प्रदर्शन मानक स्थापित करने की आवश्यकता होगी।

15

मैं हजारों एक ही बार में मिला है, हो सकता है यहां तक ​​कि एक लाख divs, स्क्रीन पर। प्रदर्शन या तो ठीक है, या बुरा है:

एचटीएमएल से पार्स या जावास्क्रिप्ट में गतिशील रूप से उत्पन्न?

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

+0

दिलचस्प ... यह समझ में आता है, लेकिन मेरे अनुभव में, ब्राउज़र को बहुत से जावास्क्रिप्ट की तरह फ्रीज नहीं करता है। इसलिए चुनौती है कि पीढ़ी की स्क्रिप को तोड़ना और सुनिश्चित करें कि यह यूआई में बीच में आता है। – harpo

+0

वास्तव में पार्स जेएस आश्चर्यजनक रूप से तेज़ है! –

6

जैसा कि अन्य ने कहा है, वास्तव में कोई जवाब नहीं है।

हालांकि, गूगल मैप्स एपीआई संस्करण 3 के बारे में इस बात में, वक्ता अप संख्या ten thousand कई बार लाता है, ब्राउज़र दुख के लिए एक बुनियादी सीमा कहा।

http://code.google.com/apis/maps/documentation/javascript/

+4

यह अज्ञात दाओ // से है स्वर्ग और पृथ्वी sprang // नाम है लेकिन // दस हजार प्राणियों की मां। –

0

मैं एक समस्या के बिना कई हजार divs जोड़ने के लिए कर लिया है। इस बात पर निर्भर करता है कि आप बाद में क्या करेंगे, ज़ाहिर है, और क्लाइंट मशीन पर मेमोरी। हर कोई इसके बारे में सही है।

जैसा कि हार्पो ने कहा, 10K शायद एक अच्छी छत है। एक समय में, मैंने 4K divs से शुरू होने वाली गति समस्याओं को देखा, लेकिन तब से हार्डवेयर में सुधार हुआ है।

और, जैसा कि नील एन ने कहा, पटकथा के माध्यम से divs जोड़ने एक विशाल HTML स्रोत होने से बेहतर है।

और, हार्पो की टिप्पणी का जवाब देने के लिए, "इसे तोड़ने" का एक तरीका है ताकि जेएस पृष्ठ को लॉक न करे और "पृष्ठ धीरे-धीरे चल रहा है" त्रुटि का उत्पादन प्रत्येक "जोड़ के अंत में टाइमर को कॉल करना है एक div "दिनचर्या, और टाइमर बदले में आपके" एक div जोड़ें "फ़ंक्शन को फिर से कॉल करता है।

अब, मेरा प्रश्न है: क्या "पेंट" करना संभव है ताकि आपको हजारों divs जोड़ने की आवश्यकता न हो? यह कुछ ब्राउज़रों के साथ कैनवास टैग के साथ किया जा सकता है, लेकिन मुझे नहीं लगता कि यह आईई पर वीएमएल (एक्वांस प्रोजेक्ट) के साथ संभव है। या यह है? मुझे लगता है कि डीओएम में नए तत्व जोड़कर वीएमएल "पेंट्स", जिस बिंदु पर आप डीआईवी का भी उपयोग कर सकते हैं, जब तक कि यह एक साधारण आकार न हो।

क्या स्क्रिप्टिंग के माध्यम से किसी छवि के स्रोत को बदलना संभव है? (डीओएम में छवि, ज़ाहिर है - सर्वर पर मूल छवि नहीं।)

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