2012-12-06 19 views
9

कम से कम है संक्रमण() चयन जो मैं तत्वों svg की स्थिति शिफ्ट करने के लिए जब नए डेटा में आता है का उपयोग करें, पूरी तरह से काम करता है जब ब्राउज़र विंडो खुली है, लेकिन जब मैं एक और टैब खोलता हूं या खिड़की को कम करता हूं, संक्रमण() फ़ंक्शन svg तत्व एक दूसरे के शीर्ष पर ढेर करता है। जब मैं खिड़की खोलता हूं तो मैं एक दूसरे के शीर्ष पर svg तत्वों को ढेर करता हूं।d3.js संक्रमण() काम नहीं कर रहा है जब ब्राउज़र

बाहर निकलें() चयन स्क्रीन से बाहर निकलता है।

+0

अरे मुझे अपने स्कैटरप्लॉट के साथ भी एक ही समस्या का सामना करना पड़ रहा है जो गतिशील डेटा लेता है। जब तक ब्राउजर प्लॉट अपडेट खोलता है, तब तक ब्राउजर को कम करने पर पृष्ठ की तरह लटकती है। क्या यह एक स्मृति रिसाव मुद्दा है ??? –

उत्तर

17

डी 3 uses requestAnimationFrame चिकनी और कुशल ड्राइंग सक्षम करने के लिए। विषय पर more info है।

कई लोगों की मूल समस्या है, जब पृष्ठभूमि में एक विंडो/टैब है, पृष्ठ "नींद मोड में जाता है" और कोई भी "एनीमेशन फ्रेम" प्रदान नहीं किया जाता है, यानी ब्राउज़र ड्राइंग बंद कर देगा। अपने ड्राइंग (जैसे, एक पूरा अद्यतन आपकी चार्ट के करते हैं जब पेज फिर से दिखाई देने लगता है)

आपको लगता है कि "समस्या" ब्राउज़रों visibility API का उपयोग करके नियंत्रित करने के लिए आस-पास काम कर सकते हैं। उदाहरण के लिए related MDN page देखें।

+2

अच्छा! मुझे अतीत में भी इस मुद्दे का सामना करना पड़ा है, और यह कामकाज वादा करता है। मुझे लगता है कि एक पूर्ण अपडेट करने के विकल्प के रूप में * जब पृष्ठ दृश्यमान हो जाता है *, कोई व्यक्ति यह निर्णय ले सकता है कि दृश्यता स्थिति के आधार पर 'संक्रमण() 'का उपयोग करना है या नहीं। यानी, कहें कि आपके पास कुछ डी 3 चयन है, 'mySelection', जिसे आप इसके' x '' विशेषता को संशोधित करना चाहते हैं; आप '(document.hidden? mySelection: mySelection.transition()) को कॉल कर सकते हैं। attr (" x ", 12345)'। – meetamit

+1

बीटीडब्ल्यू। अगर आप उत्तर से खुश हैं तो कृपया इसे स्वीकार करें। – Juve

+0

क्या इसे फीचर अनुरोध के रूप में रिपोर्ट किया जाना चाहिए? मुझे लगता है कि संक्रमण() विधि को पृष्ठ दृश्यता API का उपयोग करके ब्राउज़र दृश्यता का ख्याल रखना चाहिए, और तदनुसार एनिमेट करना चाहिए। मैं अपने चार्ट का पूरा अपडेट नहीं करना चाहता हूं। इसके बजाय मुझे @meetamit – arunkjn