Tôi đang triển khai trò chơi HTML5 bằng canvas. Bây giờ tôi đang nghĩ đến việc tạo ra tất cả các lớp phủ văn bản như các chú giải công cụ, các mẩu đối thoại, các thông tin và vv bằng cách sử dụng các phần tử HTML với vị trí tuyệt đối trên canvas. Vì vậy, tôi có thể sử dụng nhiều hiệu ứng và chuyển tiếp CSS3 cung cấp.Trộn các phần tử canvas và CSS3
Nhưng tôi không chắc chắn về hiệu suất. Những lớp phủ này phải được thêm vào và loại bỏ một cách dứt khoát (là một cái gì đó MMORPG thích, vì vậy sẽ có rất nhiều bài phát biểu và vân vân).
Có lẽ 2 câu hỏi liên quan đến hiệu suất:
DOM traversal để Add/Remove. Có lẽ một bộ nhớ cache có thể giúp đỡ?
Chính HTML và CSS3.
Tùy chọn khác là quản lý các yếu tố này trong chính khung vẽ, vẽ từng khung. Nhưng có lẽ tôi đã có một lần nữa một hình phạt hiệu suất, vì thêm mã, timeouts và những thứ tôi sẽ phải thêm, để đạt được hiệu ứng tương tự như trong CSS3. Và cần phải đi ngang qua một số cấu trúc dữ liệu.
Bất kỳ lời khuyên, ý kiến, trải nghiệm nào?
Xin cảm ơn trước.
Có thể giảm thời gian truyền tải DOM bằng cách lưu vào bộ nhớ cache tham chiếu đến các phần tử "quan trọng" của bạn; Tôi thường giữ một băm của một sốUniqueId => DOMElement cho mục đích này. Id có thể được lưu trữ dưới dạng thuộc tính data- * trên các phần tử của bạn để trợ giúp với lược đồ này. Để trộn CSS3 với Canvas, tôi đã tự hỏi về chiến lược này (+1).Việc chuyển đổi (tọa độ canvas -> tọa độ màn hình) sẽ phải được abstracted tốt hoặc bạn sẽ kết thúc với một mess cố gắng tìm ra nơi để vị trí các yếu tố thường xuyên của bạn trên đầu trang của vải. –