تحرير جافا سكريبت ActivexObject ()؟
-
26-09-2019 - |
سؤال
أنا أدعو مكون 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 التي لم يتم حذفها ، ولديها كائنات مختلفة متصلة بها.