Tôi cần hiển thị một số đồ họa vector tương tác (đính kèm với trình lắng nghe DOM và xử lý sự kiện) trong trang web mà tôi đang làm việc. Có một khuyến cáo của W3C cho SVG mặc dù định dạng này vẫn không được nhận diện bởi sự hỗ trợ của Internet Explorer mà là một phải (đối với một trang web công cộng). IE xử lý VML mặc dù và thậm chí có thư viện javascript làm một số bản vẽ giống như canvas tùy thuộc vào trình duyệt (SVG so với VML) - excanvas, GFX of Dojo Toolkit và hơn thế nữa. Điều đó sẽ được tốt đẹp và chấp nhận được mặc dù không ai trong số họ có thể hiển thị một hình ảnh SVG từ đánh dấu nhất định.Hiển thị đồ họa véc tơ trong một trình duyệt
Vậy câu hỏi thực sự bao gồm một số phần:
- Có bất kỳ qua trình duyệt Javascript thư viện mà hiển thị đồ họa vector từ đánh dấu nhất định (không bắt buộc SVG) và cung cấp tính sẵn sàng để đính kèm vào các sự kiện DOM?
- Nếu không có, công nghệ nhúng nào trong số những công nghệ nhúng trình duyệt nhất sẽ thích hợp nhất để thực hiện một tác vụ như vậy? Tôi có thể chọn từ Flex/Flash, Java applet. Silverlight không phải là một lựa chọn vì Windows lock-in.
[EDIT] Cảm ơn tất cả các nhận xét/đề xuất của bạn. Dưới đây chỉ là một số ghi chú/kết luận ngẫu nhiên của tôi về vấn đề này:
- Mức độ tương tác tôi cần là khả năng phát hiện sự kiện DOM trên hình ảnh vectơ đang được hiển thị - di chuột, di chuột, v.v ... và khả năng phản ứng trên chúng như thay đổi màu nền, hiển thị hộp thoại, vv
- Ý tưởng gắn bó với định dạng SVG khá tốt vì nó có nguồn gốc trên nhiều trình duyệt ngoại trừ trình duyệt phổ biến nhất - IE. Sau khi một số thử nghiệm với hiển thị SVG động tôi nhận ra rằng phiên bản IE 7 là vấn đề nhất. Có quá nhiều rắc rối vì trình duyệt không tương thích.
- Bánh có vẻ là một khung Javascript tuyệt vời, mặc dù tôi không thể lấy các ví dụ hoạt động trên IE7.
- Java Applet - Tôi thích ý tưởng đó nhiều nhất vì tôi mặc dù tôi có thể sử dụng thư viện Apache Batik, một trình kết xuất SVG chất lượng. Tuy nhiên, Batik là thư viện rất lớn và tôi không thể đủ khả năng triển khai một applet có trọng lượng vài megabyte.
- Tôi quyết định gắn bó với tùy chọn Flex. Tôi tìm thấy một thư viện đồ họa vector đẹp Degrafa. Nó sử dụng định dạng đánh dấu riêng của nó tuy nhiên nó nhận ra ký hiệu đường dẫn SVG, vì vậy trong trường hợp của tôi, nó sẽ khá dễ dàng để chuyển đổi SVG của tôi bằng XSLT hoặc chỉ phân tích cú pháp chúng.
[EDIT 2] Một số nhận xét khác xuất hiện. Tôi muốn làm rõ rằng bằng "Windows lock-in" tôi có nghĩa là tình hình mà Silverlight thường chạy trên Windows, cụ thể hơn, IE. Tôi nghi ngờ nó là một giải pháp được chấp nhận (ví dụ như Flash hoặc Java Applet) trên các hệ thống khác. Có, tôi không nghi ngờ rằng một có thể khởi chạy ứng dụng Silverlight trên bất kỳ hệ thống nào mặc dù tôi e rằng nó sẽ là quá nhiều nỗ lực cho một người dùng trung bình.
@Akira: Bạn có gặp bất kỳ sự cố nào với "trình kết xuất SVG" trên IE7 không? Tôi luôn bị lỗi Javascript.
Theo hiểu biết của tôi, Adobe sẽ ngừng hỗ trợ plugin của họ. –