Xin chào, tôi có một ứng dụng web có thể chạy trên cả Trình duyệt trên Điện thoại thông minh và Máy tính để bàn. Trong khi tôi đang mong đợi để có được một số hành vi tò mò trên các thiết bị nhỏ như Iphone, tôi đã khá tự tin rằng nó sẽ chạy tốt trên một Android Galaxy Tab là thiết bị Android mà tôi có thể chạy thử nghiệm với tại thời điểm này.Sự cố về hiệu suất với Canvas HTML5 trong một số trình duyệt di động.
Bây giờ tôi đã cài đặt một loạt các trình duyệt trên Galaxy Tab để kiểm tra điều này với:
- Trình duyệt Android Native
- Chrome dành cho Android
- Firefox dành cho Android
Trên Máy tính để bàn tôi đã sử dụng
- Firefox
- Google Chrome
và cuối cùng tôi có một Iphone để kiểm tra.
Trang web sử dụng canvas HTML5 cho pixel và sprite dựa trên bản vẽ không có chuyển đổi, bộ lọc hoặc hiệu ứng ưa thích, chủ yếu là đường dẫn đơn giản và đa giác. Tôi nghe các sự kiện liên lạc và sử dụng requestAnimationFrame
để vẽ lại đúng cách.
Nhìn chung, ứng dụng chạy tốt trên Trình duyệt trên máy tính để bàn, ứng dụng này cũng chạy rất tốt trên iOS Safari (iPhone) và Firefox-trên-Android. Tuy nhiên, Androids Native Browser đang gây rắc rối cho tôi. Tôi đã thiết lập nó để màn hình đỏ bừng khi javascript không đáp ứng, và nó hầu như luôn luôn nhấp nháy khi chạm vào màn hình.
Vì vậy, tôi tự hỏi liệu có bất kỳ sự cố nào đã biết với Android Native App và HTML5 hay không. Do không tồn tại tên của các trình duyệt bản địa của nó khá khó để google thông tin về việc này. Bất kỳ ý tưởng nào cho tôi nơi tôi có thể nhận thêm thông tin? Bất kỳ ý tưởng nào có thể gây ra sự chậm trễ của trình duyệt Android gốc?
Có một vài ý tưởng về vấn đề này:
iOS không hỗ trợ requestAnimationFrame, do đó tôi đã thay thế nó bằng một sự thay thế dựa trên thời gian chờ. Nếu tôi sử dụng thay thế đó trên trình duyệt gốc của Android, sự cố vẫn tiếp diễn.
Tôi sử dụng AJAX (google clojure xhrio) khá thường xuyên để truy xuất dữ liệu từ máy chủ. Có thể nào là các cuộc gọi lại truy xuất dữ liệu đang chặn đường dẫn sự kiện của tôi?
Thông báo trên bảng điều khiển nhật ký (console.log) có được biết là làm chậm các ứng dụng không? Họ có thể kích hoạt trình duyệt chạy lại qua cây DOM hay bất kỳ thứ gì có liên quan không?
Tôi không thể trả lời câu hỏi thực tế của bạn, nhưng việc sử dụng bảng điều khiển có thể tiêu tốn lượng bộ nhớ đáng kể tùy thuộc vào cách bạn đang sử dụng. Đặc biệt là nếu bạn đang đăng nhập các đối tượng lớn hoặc đăng nhập rất thường xuyên. – idbehold