2012-02-11 30 views

Trả lời

6

Điều này giới thiệu rò rỉ bộ nhớ trong một số trình duyệt vì bạn ràng buộc đối tượng C gốc (phần tử DOM) và đối tượng JS với nhau và một số thuật toán thu thập rác không thể xử lý được. IE là một trong số đó.

Dưới đây là một bài viết MSDN về rò rỉ bộ nhớ trình duyệt IE: http://msdn.microsoft.com/en-us/library/ie/bb250448(v=vs.85).aspx

+6

Đối với ngữ cảnh thích hợp, điều này chỉ giới thiệu rò rỉ bộ nhớ nếu đối tượng được đề cập bị xóa khỏi DOM và bạn mong đợi nó sẽ được thu thập rác. Và, rò rỉ bộ nhớ chỉ là hậu quả nếu dữ liệu được liên kết với phần tử DOM là rất lớn hoặc có hàng nghìn dữ liệu được tạo ra, sau đó bị loại bỏ khỏi DOM. Đối với một đối tượng nằm trong DOM cho toàn bộ thời gian tồn tại của trang của bạn, không có rò rỉ bộ nhớ. – jfriend00

+0

Ghi chú hay! Tôi quên đề cập đến rằng bạn cần phải loại bỏ các yếu tố cho rò rỉ xảy ra. –

+0

Những kẻ đầu vào tuyệt vời! Cảm ơn! –

3

Bottom line, tại sao bạn sẽ không sử dụng các công cụ thích hợp có sẵn? Bạn không có ý tưởng nếu trong tương lai, gần hay xa, bất kỳ tên thuộc tính tùy chỉnh nào bạn đang sử dụng sẽ được thêm vào các đặc tả w3c cho phần tử cụ thể đó. Bây giờ, đột nhiên mã của bạn bị hỏng.

Đừng bận tâm rằng việc thêm thuộc tính tùy chỉnh vào các yếu tố đã có các thuộc tính đã xác định khiến mã của bạn trở thành cơn ác mộng bảo trì. Cho dù đó là bạn hay người khác duy trì nó trong tương lai, sẽ có một khoảnh khắc "wtf" nơi nhà phát triển đang cố gắng tìm ra nếu a) một thuộc tính tùy chỉnh được thêm vào phần tử hoặc b) đối tượng tùy chỉnh.

Cuối cùng, điều gì sẽ xảy ra nếu phần tử đó được thay thế trong dom thông qua Ajax hoặc HTML động? Bây giờ tài sản đã biến mất và mã của bạn bị hỏng.

+3

không có gì bạn đang nói làm cho bất kỳ ý nghĩa ... –

+0

Điều gì không có ý nghĩa? –

Các vấn đề liên quan