2013-05-26 34 views
35

Tôi đang viết một phần mở rộng chrome mà làm như sau:"Aw, Snap" khi dữ liệu uri là quá lớn

  1. Số lượt tải một tập tin từ một trang web vào bộ nhớ sử dụng XMLHttpRequest
  2. Thêm dữ liệu bổ sung cho tệp và sau đó base64 mã hóa kết quả thành biến số total_encoded_data
  3. Cung cấp dữ liệu cho người dùng bằng cách sử dụng <a href=data:application/octet-stream;charset=utf-8;base64,' + total_encoded_data+' download='file.bin'>Click to Download</a>. Trường hợp total_encoded_data được thêm vào href bằng cách sử dụng jQuery.

Tôi đã tìm thấy, thông qua tìm kiếm nhị phân thủ công, nếu kích thước total_encoded_data lớn hơn 2097100 ký tự thì tôi sẽ nhận được thông báo Aw, Snap khi tôi nhấp vào liên kết. Nếu kích thước nhỏ hơn thì tôi có thể tải xuống như mong đợi.

Ngoài việc kiểm tra kích thước, tôi cũng sử dụng atoi để đảm bảo rằng mã hóa base64 hợp lệ và hoạt động không có lỗi.

Các Aw, các thông điệp Snap không sản xuất bất kỳ báo cáo sự cố trong chrome://crashes hay bất kỳ đầu ra bất ngờ trong chrome_debug.log

Làm thế nào để tránh một thông báo Aw, Snap khi phục vụ một uri dữ liệu mà mã hóa base64 dài chuỗi là lớn hơn 2097100?

Trả lời

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