मैं एक ऐसा एप्लीकेशन विकसित कर रहा हूं जो उपयोगकर्ता को सामग्री को संशोधित करने की अनुमति देने के लिए TinyMCE संपादकों का उपयोग करता है। मैंने प्रोटोटाइप.जेएस क्लास विकसित किया है, जो प्रारंभिक रूप से, एक अद्वितीय आईडी उत्पन्न करता है और उस आईडी के साथ <div>
पर एक TinyMCE संपादक बनाता है। ,जावास्क्रिप्ट में स्मृति भ्रष्टाचार का कारण क्या हो सकता है?
Region = Class.create(
{
initialize: function(options)
{
this._editorReady = false;
this._index = Region.nextIndex++;
this._uid = com.digitalfruition.Customizer.TypeRegion.uidPrefix+this._index;
Region.instances.push(this);
this.setupTinyMCE();
},
uid: function()
{
return this._uid;
},
index: function()
{
return this._index;
},
स्थानों के एक बहुत में मैं, उदाहरण के लिए, ईवेंट TinyMCE संपादक के भीतर हो (उदाहरण के लिए, चयन परिवर्तन) एक Region
के uid()
के पास भेजेगा मेरी संचालकों: यहाँ प्रासंगिक कोड के कुछ है संपादक की आईडी दी गई है। मैं अक्सर करना होगा:
var index = Region.instances.invoke('uid').indexOf(uid);
वास्तविक Region
उदाहरण इंटरफ़ेस घटनाओं में हुई दर्शाती खोजने के लिए
मैं ही कभी किसी भी Region
एक बार की _uid
गुण सेट।। इसका मुझे पूर्ण विश्वास है।
लेकिन फ़ायरफ़ॉक्स 9.0.1 में, मैं वास्तव में अजीब व्यवहार देख रहा हूं। जब घटनाएं आग लगती हैं, तो वे जिस संपादक पर गोलीबारी कर रहे हैं उसे नहीं मिला क्योंकि index
उपरोक्त कोड में -1
है।
उन, मेरे कोड से डिबग संदेश होते हैं इस क्षेत्र की this.uid()
मूल्य के साथ-साथ विभिन्न चीजों प्रवेश करने (इस मामले में क्षेत्रों की ऊंचाई): Firebug में निरीक्षण के बाद, मैं में देखा। स्मृति को दूषित हो गया प्रतीत होता है! और आप यह भी देख सकते हैं कि यह कहां होता है, पहली सर्कल वाली लॉग प्रविष्टि सही है, और बाद वाले लोग गलत हैं।
सफारी और क्रोम में एक ही कोड ठीक काम करता है। अब तक केवल फ़ायरफ़ॉक्स 9.0.1 प्रभावित किया जा रहा है ...
आगे का निरीक्षण करने के लिए, मैं Firebug कंसोल में इस भाग गया:
>>> com.digitalfruition.Customizer.TypeRegion.instances.invoke('uid');
["�ᔮ��蒦ᓤ�瀀魳ᓪ�倀⛺ᓪ�怀�eg����遀"]
मेरे लिए कोई मतलब नहीं है यही कारण है कि। जावास्क्रिप्ट में इस तरह स्मृति भ्रष्टाचार का कारण क्या हो सकता है? मैं ऐसी स्थिति की समस्या निवारण के बारे में भी कैसे जा सकता हूं?
मैं [जावास्क्रिप्ट चैट] में हूं (http://chat.stackoverflow.com/rooms/17/javascript) यदि आप मुझसे कोई प्रश्न पूछना चाहते हैं! – Josh
यह 'com.digitalfruition.Customizer.TypeRegion' चीज़ कहां से आती है? क्या यह एक शुद्ध जावास्क्रिप्ट वस्तु है? – dyoo
@dyoo क्षमा करें, यह स्पष्ट नहीं है, है ना? :) यह मेरे कोड नमूने में क्षेत्र वस्तु है; मैंने बस अपने प्रश्न के लिए कोड छोटा कर दिया। – Josh