2008-10-30 18 views
5

मान लीजिए कि मेरे पास एक ब्राउज़र में एक पृष्ठ के भीतर एक एप्लेट चल रहा है। उपयोगकर्ता द्वारा ब्राउज़र बंद होने पर क्या होता है?ब्राउज़र बंद होने पर एप्लेट के साथ क्या होता है?

क्या ऐपलेट अधिसूचित है ताकि यह उसके पक्ष में कुछ प्रकार की करीबी कार्रवाई कर सके (सर्वर पर खोले गए कनेक्शन बंद हो, स्थिर चर की सफाई हो ...)?

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

धन्यवाद, जेबी

उत्तर

2

हाँ, नष्ट() विधि से पहले ब्राउज़र वस्तु अनलोड बुलाया जाना चाहिए।

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

आदर्श रूप से, नष्ट करें() पर्यावरण द्वारा बुलाया जाना चाहिए, और केवल एक बार बुलाया जाना चाहिए। अगर ऐसा लगता है कि नष्ट() को नहीं कहा जा रहा है, तो आप एक सार्वजनिक अंतिम() विधि घोषित कर सकते हैं, जिसे नष्ट कर दिया जाता है। आप विंडो ऑब्जेक्ट को अनलोड करने के रूप में जावास्क्रिप्ट से नष्ट() को कॉल करने का भी प्रयास कर सकते हैं, लेकिन फिर से, सुनिश्चित करें कि आप अनावश्यक रूप से नष्ट नहीं कर रहे हैं।

public void finalize() { 
    destroy(); 
} 
1

अधिकांश बार नष्ट हो जाएगा, लेकिन खिड़की बंद करने के मामले में आवश्यक कार्यों को करने के लिए पर्याप्त समय नहीं मिलता है।

रीफ्रेशिंग के दौरान पर्याप्त समय मिलता है, बैकवर्ड < के साथ नेविगेट करना - और आगे ->

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