2010-04-09 8 views
5

मेरे पास अक्सर अद्यतन जानकारी की एक तालिका है। यह प्रत्येक पंक्ति के लिए एक div के साथ एक कंटेनर div का उपयोग करके प्रस्तुत किया जाता है, प्रत्येक पंक्ति जिसमें 10 divs होते हैं।सबसे मेमोरी लीक सुरक्षित दृष्टिकोण कौन सा है

मैं एक एएसएमएक्स webservice को कॉल करने के लिए setInterval का उपयोग कर रहा हूं जो कुछ जेसन स्वरूपित जानकारी देता है।

सफलता कॉलबैक पर मैं कंटेनर div पर $("#myContainer").empty(); पर कॉल करता हूं और प्रत्येक पंक्ति के कॉलम के लिए पंक्तियों और 10 नेस्टेड divs को फिर से बना देता हूं।

यह पृष्ठ पूरे दिन चलाने के लिए छोड़ा जा सकता है, इसलिए मैं इस तरह के डोम को अपडेट करने से सावधान हूं क्योंकि मैंने देखा है कि समय के साथ ब्राउज़र के लिए मेमोरी बढ़ती है (आईई 8)।

अन्य दृष्टिकोण जो मैं विचार कर रहा हूं वह पंक्ति div में एक आईडी जोड़ना है। जब नए परिणाम डेटा के प्रत्येक आइटम को संसाधित करते हैं, तो संबंधित पंक्ति की तलाश करें, यदि यह प्रत्येक div में डेटा को ओवरराइट करता है। यदि यह अस्तित्व में नहीं है (उदाहरण के लिए नया डेटा), पंक्ति संलग्न करें।

इस तरह के लंबे समय तक रहने वाले छद्म रीयलटाइम सूचना प्रदर्शन के लिए दूसरों ने किस दृष्टिकोण का उपयोग किया है।

TIA

उत्तर

5

सामान्य तौर पर, मेमोरी लीक को रोकने के लिए एक बहुत ही सुरक्षित तरीके से नष्ट करने और डोम तत्वों को फिर से बनाने का निवेदन किया जा सके। आपके जैसे परिस्थितियों में, मैं हमेशा आरंभिक डीओएम संरचना को रखने की कोशिश करता हूं, और तत्वों के आंतरिक पाठ को अद्यतन करता हूं जब AJAX अनुरोधों से ताजा डेटा उपलब्ध होता है।

+0

क्या यह एक सिद्ध तथ्य है? क्या आपके पास कोई संदर्भ है, न कि मुझे आपको संदेह है, इसके बारे में और अधिक पढ़ना वाकई अच्छा होगा। – raveren

+2

@ रेवेरेन: नहीं, यह एक सिद्ध तथ्य नहीं है। असल में यह काफी निराशावादी दृष्टिकोण है, क्योंकि मुझे यकीन है कि आधुनिक ब्राउज़र ब्राउज़र के निर्माण/ड्रॉप करते समय स्मृति प्रबंधन के लिए सक्षम हैं। फिर भी, लंबे समय तक चलने वाले वेब अनुप्रयोगों में स्मृति लीक ढूंढना (जो कई दिनों तक खुला रहता है) ऐसा सिरदर्द है, कि मैं हमेशा इस निराशावादी दृष्टिकोण से चिपकने की कोशिश करता हूं। जाहिर है जटिल जीमेल-शैली अनुप्रयोगों के लिए यह संभव नहीं होगा। लेकिन ऐसा लगता है कि ओपी रीयलटाइम में अपडेट की गई डेटा टेबल को बस रख रहा है, इस मामले में, मैं पहले सुझाए गए दृष्टिकोण का प्रयास करूंगा। –

1

थोड़ी देर में पृष्ठ को ताज़ा करें।

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