2011-10-25 15 views
5

chúng tôi đang hiển thị hai biểu đồ có flot, chia sẻ cùng trục x. chúng tôi âm mưu chúng với:Rò rỉ bộ nhớ rãnh trong khi liên kết hai biểu đồ bằng cách sử dụng panning

plot1 = $.plot($("#placeholderGraph1"), p1_data, d1_options); 
plot2 = $.plot($("#placeholderGraph2"), p2_data, d2_options); 

chúng ta cần phải đảm bảo rằng panning và phóng to trên một đồ thị cũng vẽ lại người kia và ngược lại. chúng tôi đạt được điều này với ràng buộc sau:

$("#placeholderGraph1").bind("plotpan", adjustGraph1Axes); 
$("#placeholderGraph2").bind("plotpan", adjustGraph2Axes); 

Nếu chúng tôi không thêm hai câu lệnh cuối cùng này, không có rò rỉ bộ nhớ và trình duyệt (tất cả trình duyệt) mất bộ nhớ bất cứ khi nào nó vẽ lại. Nhưng với sự ràng buộc ở trên, trình duyệt không bao giờ giảm bộ nhớ và nó chồng lên hàng trăm megabyte.

Ngoài ra, chúng tôi cũng cập nhật các truyền thuyết cá nhân với các chuyển động của chuột.

chúng tôi đã thử các cách tiếp cận đối với rò rỉ bộ nhớ sau, nhưng không ai làm việc:
1. làm plot1 và plot2 biến toàn cục và xóa một cách rõ ràng các nội dung
2. Xóa divs đồ thị và tái
3. kiện Rõ ràng unbinding trước rebinding
4. Vẽ biểu đồ trống trước khi vẽ lại

Bất kỳ phương pháp nào khác để liên kết hai biểu đồ hoặc bộ nhớ bán phá giá?

+1

Bạn không thể tiếp tục thêm thông tin vào câu hỏi trước của mình http://stackoverflow.com/questions/7755822/flot-memory-leak để tạo một số khác? –

+0

Xin vui lòng, thời gian tới, [sửa] thay vì tạo một câu hỏi mới. – Will

+2

Một chút mã sẽ hữu ích. – Fiddles

Trả lời

0

tôi có thể có một vấn đề tương tự đồng bộ hóa các lựa chọn trên một cốt truyện tổng quan và panning/phóng to trong cốt truyện chính; vấn đề của tôi là xử lý sự kiện cho một cốt truyện đã kích hoạt sự kiện cho cốt truyện khác và việc thực hiện xử lý sự kiện tương ứng đã kích hoạt sự kiện cho âm mưu đầu tiên, khiến bộ xử lý sự kiện ban đầu thực thi ... vòng lặp.

Nói cách khác, bạn có chắc vấn đề của bạn mà không phải là việc thực hiện các adjustGraph1Axes không kích hoạt các sự kiện plotpan cho đồ thị 2 gây ra việc thực hiện adjustGraph2Axes vô ý, mà kích hoạt các plotpan cho đồ thị 1 và gây adjustGraph1Axes để thực hiện và như vậy? Bài đăng của tôi cùng với giải pháp được đặt tại đây: Flot event for range updates in response to panning/zooming.

Tôi đã sử dụng cờ để giải quyết vấn đề ping-pong giữa hai trình xử lý sự kiện và giải pháp của tôi là < http://jsfiddle.net/apandit/nu2rr58h/12/>.

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