Tôi đang xây dựng một ứng dụng bao gồm UIWebView
chứa một số lượng lớn các hình ảnh, CSS, video nhúng và trình xử lý chạm JavaScript. Hiệu suất cuộn là nói lắp và tôi đang tìm kiếm thông tin chi tiết về những cách hiệu quả nhất để cải thiện điều này.Các cách để cải thiện hiệu suất cuộn UIWebView?
Điều gì sẽ xảy ra nếu bất kỳ đặc điểm nào sau đây dẫn đến tụt hậu UIWebView
di chuyển? Yếu tố nào khác có thể cản trở hiệu suất?
- Số lượng các hình ảnh
- Tôi có nên được loại bỏ hình ảnh từ DOM khi người dùng cuộn qua chúng, và thêm chúng trở lại nếu họ di chuyển trở lại?
- Kích thước của hình ảnh
-
hình ảnh
- Will Retina chất lượng trong một lần xem web ảnh hưởng đến hiệu suất di chuyển nhiều hơn các phiên bản nhỏ hơn sẽ?
- ảnh rộng
- Would thay đổi kích thước hình ảnh trước thời hạn tạo ra một sự khác biệt lớn, chứ không phải dựa trên quan điểm web để quy mô dựa trên tờ khai như
width: 100%;
?
- Would thay đổi kích thước hình ảnh trước thời hạn tạo ra một sự khác biệt lớn, chứ không phải dựa trên quan điểm web để quy mô dựa trên tờ khai như
- CSS
- Tôi đã tránh
box-shadow
, nhưng là có thuộc tính CSS khác cũng được biết đến với ảnh hưởng xấu đến hiệu suất di chuyển?
- Tôi đã tránh
Nếu có bất kỳ nguồn lực khác hoặc các công cụ có thể được sử dụng cho các hồ sơ, tôi đã yêu nghe về chúng.
tôi không thể xuống bình chọn nào, nhưng đây là một nghiêm trọng không-không. Giải pháp này làm cho toàn bộ webView được rút ra vào đó là CALayer (cơ chế hiển thị lát gạch của UIWebView bị vô hiệu hóa), gây ra việc sử dụng bộ nhớ lớn. Mô tả của OP về các trang của anh ấy, "chứa một số lượng lớn các hình ảnh, CSS, video nhúng và trình xử lý chạm JavaScript" sẽ khiến ứng dụng sử dụng quá nhiều bộ nhớ. –
Vì vậy, những gì bạn đang nói là tôi giao dịch bộ nhớ cho hiệu suất? Đó là loại những gì tôi đã tìm. Tôi đồng ý rằng nó không phải là một giải pháp tuyệt vời, nhưng đó là cách duy nhất tôi có thể tìm thấy để cải thiện di chuyển. Và cho tôi biết chính xác những gì sẽ được tải vào webview trước thời hạn và tất cả các tài sản được đóng gói với các ứng dụng, tôi đã không có vấn đề làm theo cách này. – rjowens
Vâng, loại giao dịch này rất nguy hiểm với UIWebView, bởi vì nó phát triển trong bộ nhớ rất nhanh và mạnh mẽ. Và khi nội dung trở nên lớn hơn và phức tạp hơn, bạn sẽ sớm tìm thấy một loạt các hasReceiveMemoryWarning-s và cuối cùng bị treo. –