2014-04-03 22 views
9

Tôi đang phát triển Trò chuyện trên nút nút. Giống như bất kỳ cuộc trò chuyện nào, người dùng gửi liên kết mọi lúc. Tình huống là bất cứ khi nào người dùng nhấp vào bất kỳ liên kết nào (thẻ neo có mục tiêu '_blank'), Chrome sẽ mở một tab mới (Ví dụ: video trên youtube) có vẻ liên kết cả tab chính và tab mới, trong bộ nhớ như sau:Tab mới của Chrome giữ bộ nhớ

http://s22.postimg.org/a9u5sm9dt/Chat_Tabs.png

Nó có vẻ như một hành vi bình thường nhưng khi người dùng gần đó tab mới, tab chính giữ ký ức từ tab mới hơn, giảm chỉ là một vài Ks.

http://s22.postimg.org/e7m0vrlkx/Chat_Tabs_User_Close.png

rác Collector không chạy luôn và giả rằng một người dùng mở 30 liên kết, bộ nhớ có thể phát triển đáng kể.

Bất kỳ ai biết cách tạo thẻ neo có thể tránh hành vi này? Đó là sự cố của Chrome? Phiên bản của tôi là 33.0

Một hành vi thú vị là khi người dùng thực hiện nhấp chuột phải và mở tab mới từ trình đơn. Chrome tạo một tab mới riêng biệt. Đó là hành vi tôi muốn nhân rộng.

Chúc mừng!

+2

Không có gì bạn có thể làm, theo mã phía máy chủ hoặc mã do khách hàng thực hiện, để thao tác hoặc ảnh hưởng đến việc thu thập rác hoặc sử dụng bộ nhớ của tác nhân người dùng. –

+0

Cảm ơn! Có, tôi biết điều đó, nhưng một hành vi thú vị là khi người dùng nhấp chuột phải và mở một tab mới từ đó. Chrome tạo một tab mới riêng biệt và đó là những gì tôi muốn sao chép. – Machinerium

+0

Rõ ràng đây là một sự thất vọng đã biết và có vẻ như mọi trình duyệt đều có vấn đề ở đây hoặc ở đó với nó: https://www.google.com/search?q=chrome+memory+leak – DrLivingston

Trả lời

5

Tôi đã tìm thấy giải pháp cho việc này, thiết lập rel = noreferrer vào thẻ liên kết. Bây giờ nó sẽ mở ra bất kỳ số lượng tab riêng biệt mà không làm quá tải bộ nhớ trên tab chính.

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