سؤال

أنا أدعو مكون C# com باستخدام JavaScript: keystore = new ActiveXObject("RBCrypto.KeyStore");. لقد لاحظت أن هذه الحالة تظل موجودة حتى أخرج من المتصفح. هل هناك على أي حال "لإصدار" هذا الكائن عندما يترك المستخدم الصفحة؟ حاليا أنا أستخدم:

window.onunload=function() //when a user leaves the page close the keystore
{
     if(keystore != null)
     {
         try
         {
            keystore.closeKeyStore(); //method in keystore
            delete keystore;
         }
         catch(err) { alert(err.description); }
     }  
}

لكن كائن com لا يزال معلقًا. أيه أفكار؟

هل كانت مفيدة؟

المحلول

أعلم أن الوقت متأخر قليلاً للرد. "قبل وقت متأخر من عدمه"

أعتقد أن الصحيح هو "application.quit () ؛". ومع ذلك ، يمكن تطبيق كائن com/Ole/ActiveX إرجاع Null. لا أعرف كيفية القيام بتطبيق الإرجاع! = NULL لتشغيل QUIT () ؛

يمكنك المحاولة...

try
{
    keystore.closeKeyStore();
    delete keystore;
    keystore = null;
    CollectGarbage(); 
}
catch(err)
{
    alert('freeing ActiveXObject via javascript'+ err.description);
}

نصائح أخرى

محاولة،

keystore.Application.Quit();

هذه النتيجة من http://www.c-point.com/javascript_tutorial/jsobjactivexobject.htm

يمكنك أيضًا تجربة جميع القيم المرفقة الكائنات قبل الحذف

for (k in elm) {
            try {
                elm[k] = null;
            }
            catch (e) {
            }
        }
}

لقد وجدت أن هذا يساعد في حالة كائنات HTML التي لم يتم حذفها ، ولديها كائنات مختلفة متصلة بها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top