Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Thông tư tài liệu tham khảo cho các đối tượng DOM trên trang HTML gây ra một rò rỉ bộ nhớ

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:830555
Khước từ Nội dung trong Cơ sở Kiến thức Không còn được hỗ trợ
Bài viết này nói về các sản phẩm mà Microsoft không còn hỗ trợ nữa. Do đó, bài viết này được cung cấp "nguyên bản" và sẽ không được cập nhật.
TRIỆU CHỨNG
Một rò rỉ bộ nhớ xảy ra khi bạn làm mới trang HTML có sử dụng Microsoft JScript mã có chứa tròn chiếu cho các đối tượng trong các Microsoft Internet Explorer Document Object Model (DOM).
NGUYÊN NHÂN
Rò rỉ bộ nhớ này xảy ra bởi vì các đối tượng DOM là không JScript các đối tượng. Các đối tượng DOM đang không ở trong các đề án bộ sưu tập rác thải hiệu và góc của JScript. Vì vậy, tài liệu tham khảo thông tư giữa các đối tượng DOM và các JScript xử lý sẽ không được chia cho đến khi trình duyệt hoàn toàn nước mắt các Trang. Rò rỉ bộ nhớ này sẽ kết thúc khi trình duyệt sẽ mở ra một trang Web mới hoặc khi cửa sổ trình duyệt đóng cửa.
GIẢI PHÁP
Để giải quyết vấn đề này, tránh thông tư tài liệu tham khảo để Internet Explorer DOM các đối tượng trong mã của bạn Jscript. Để làm việc xung quanh vấn đề này trong mẫu mã được bao gồm trong phần "Thông tin" điều này viết, thực hiện thay đổi sau đây:
function hookup(element){    element.attachEvent( "onmouseover", mouse);}function mouse () {}
Thay đổi này, các chuột chức năng không phải là một đối tượng đóng cửa dẫn đến một tham chiếu vòng tròn.
TÌNH TRẠNG
Microsoft đã xác nhận rằng đây là một lỗi trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".
THÔNG TIN THÊM

Các bước mô phỏng hành vi.

  1. Dán mã sau đây trong Notepad và sau đó lưu tệp như Test.htm:
    <HTML><HEAD><script language="javascript">function initpage(){window.setTimeout("window.location.reload()", 500, "javascript");}</script></HEAD><body onload="initpage()" ><div class='menu' id='menu'></div><script language='javascript'>hookup(document.getElementById('menu'));function hookup(element){element.attachEvent( "onmouseover", mouse);	function mouse () 	{	}}</script></body></HTML>
    Trong mã này, bộ xử lý (các chuột chức năng) lồng bên trong (các attacher hookup chức năng). Sự sắp xếp này có nghĩa rằng việc xử lý đóng cửa trong phạm vi của người gọi (sắp xếp này được đặt tên "đóng cửa"). Bộ xử lý duy trì một tham chiếu đến các phần tử biến. Trong trường hợp này, biến tố là các div Phần tử HTML với các ID tham số được thiết lập để trình đơn. Nhưng các div nguyên tố chỉ xử lý. Tham chiếu này là một vòng tròn tài liệu tham khảo.
  2. Mở Test.htm trong Internet Explorer.

    Nhận thấy rằng sử dụng bộ nhớ trong Windows Task Manager tiếp tục tăng mỗi khi các Trang làm mới chính nó.
THAM KHẢO
Để biết thêm chi tiết về Internet Explorer rò rỉ mẫu, ghé thăm Web site sau của Microsoft Developer Network (MSDN):

Cảnh báo: Bài viết này đã được dịch tự động

Thuộc tính

ID Bài viết: 830555 - Xem lại Lần cuối: 08/30/2011 09:00:00 - Bản sửa đổi: 2.0

  • kbfix kbmt KB830555 KbMtvi
Phản hồi