From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../reference/errors/dead_object/index.html | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 files/ru/web/javascript/reference/errors/dead_object/index.html (limited to 'files/ru/web/javascript/reference/errors/dead_object') diff --git a/files/ru/web/javascript/reference/errors/dead_object/index.html b/files/ru/web/javascript/reference/errors/dead_object/index.html new file mode 100644 index 0000000000..de666b01d8 --- /dev/null +++ b/files/ru/web/javascript/reference/errors/dead_object/index.html @@ -0,0 +1,48 @@ +--- +title: >- + TypeError: can't access dead object (Тип ошибки:не удается получить доступ к + мертвому объекту) +slug: Web/JavaScript/Reference/Errors/Dead_object +translation_of: Web/JavaScript/Reference/Errors/Dead_object +--- +
{{JSSidebar("Errors")}}
+ +

Сообщение

+ +
TypeError: can't access dead object
+
+ +

Тип ошибки

+ +

{{jsxref("TypeError")}}

+ +

Что не так?

+ +

Для улучшения использования памяти и предотвращения утечек памяти Firefox запрещает надстройкам сохранять строгие ссылки на объекты DOM после уничтожения родительского документа. Мертвый объект содержит сильную ссылку (keep alive) на элемент DOM, который сохраняется даже после того, как он был уничтожен в DOM. Чтобы избежать этих проблем, ссылки на узлы DOM во внешнем документе должны храниться в объекте, который относится к этому документу, и очищаться при выгрузке документа или храниться как слабые ссылки.

+ +

Проверка, если объект мертв

+ +

Components.utils предлагает isDeadWrapper()метод, который может использовать привилегированный код. 
+  

+ +
if (Components.utils.isDeadWrapper(window)) {
+  // dead
+}
+ +

Непривилегированный код не имеет доступа к Component.utils и мог бы просто быть в состоянии поймать исключение.

+ +
try {
+  String(window);
+}
+catch (e) {
+  console.log("window is likely dead");
+}
+ +

Смотрите также

+ + -- cgit v1.2.3-54-g00ecf