Tôi ít bối rối ở đây. Do ArrayBuffer cấp phát vùng bộ nhớ mới cho nó? Nếu vậy, kích thước Blob tối đa an toàn để đặt trên đó là gì?Do ArrayBuffers có độ dài tối đa không?
Trả lời
Điều đó chỉ phụ thuộc vào hệ thống của bạn và có vẻ như không có giới hạn.
Theo the specification:
Nếu số yêu cầu của byte không thể được phân bổ một ngoại lệ được nâng lên.
Tài liệu liên kết của bạn trỏ đến không chứa các từ bạn trích dẫn. Bạn có nghĩa là ["Nếu không thể tạo một Khối dữ liệu như vậy, hãy ném ngoại lệ của RangeError."] (Https://www.ecma-international.org/ecma-262/6.0/#sec-createbytedatablock)? – Daerdemandt
@Daerdemandt Liên kết của tôi chỉ đến phiên bản "mới nhất" của các thông số, vì vậy tôi đoán nó đã phát triển, nhưng có, câu bạn trích dẫn giống như câu trả lời mới tương đương với câu trả lời của tôi. –
Tôi cũng đã tự hỏi mình cùng một câu hỏi. Dường như bộ đệm bị giới hạn bởi bộ nhớ hệ thống có sẵn và khả năng của GC của công cụ JavaScript cơ bản để xử lý một lượng lớn bộ nhớ. Bạn có thể dễ dàng kiểm tra nó cho nền tảng của bạn bằng cách tạo bộ đệm lớn trong giao diện điều khiển của trình duyệt của bạn và ở phía bên kia theo dõi quá trình của trình duyệt và dấu chân bộ nhớ tổng thể.
Tôi vừa quản lý để tạo bộ đệm lớn hơn 512MB trên Chrome 37. Tuy nhiên, tôi có 4GB bộ nhớ hệ thống để có thể dẫn đến sự cố sau khi phân bổ nhiều hơn. Tôi không quan tâm đến việc tìm điểm phá vỡ kể từ khi tôi tốt với phân bổ lên đến 100MB, nhưng bạn rõ ràng có thể kiểm tra nó một cách dễ dàng cho chính mình.
những gì sẽ là an toàn kích thước Blob tối đa để đưa vào nó
Có vẻ như không phải là một giới hạn cứng, chỉ cần bất cứ điều gì hạn chế nền tảng của bạn áp đặt.
Tuy nhiên, nếu sử dụng một số loại truy cập được lập chỉ mục, chỉ mục không được lớn hơn Number.MAX_SAFE_INTEGER, vì các lỗi thú vị sẽ xảy ra khác.
May mắn thay, 2^53-1 byte là khoảng 8 petabyte vì vậy nó không phải là mối quan tâm trừ khi bạn đang làm điều gì đó thực sự kỳ lạ.
- 1. Độ dài byte tối đa []?
- 2. Android EditText Độ dài tối đa
- 3. Độ dài tối đa của SQL CE
- 4. Độ dài tối đa của một openID
- 5. Độ dài ký tự tối đa UUID
- 6. Thêm "Độ dài tối đa" vào Regex
- 7. Nhận độ dài giá trị cột, không phải độ dài cột tối đa của giá trị
- 8. Độ dài tuyên bố tối đa trong Oracle
- 9. Có LevelDB giới hạn độ dài tối đa cho các khóa không?
- 10. Lỗi trình tải SQL: "Trường độ dài thay đổi vượt quá độ dài tối đa".
- 11. Có độ dài tối đa cho tên người dùng xác thực HTTP BASIC không?
- 12. Độ dài tối đa của mục mô tả RSS
- 13. JSON Tối đa vấn đề về độ dài với ASP.NET
- 14. Độ dài tối đa của biến chuỗi trong Android
- 15. Độ dài tối đa của một ListProperty là bao nhiêu?
- 16. Độ dài tối đa trong Wix Điều khiển chỉnh sửa
- 17. độ dài yêu cầu tối đa trong node.js
- 18. Thay đổi độ dài tối đa của cột VARCHAR?
- 19. Độ dài mặc định tối đa xsd string
- 20. Độ dài mật khẩu người dùng tối đa của MySQL
- 21. Đặt độ dài tối đa của một TextBlock trong XAML
- 22. Độ dài tối đa của truy vấn SQL
- 23. Giới hạn độ dài nội dung chuỗi tối đa (8192)
- 24. Độ dài tối đa của SID ở định dạng SDDL
- 25. Độ dài tối đa của thuộc tính tiêu đề
- 26. Độ dài tối đa trong văn bản sử dụng jQuery
- 27. độ dài tối đa của html textbox là gì
- 28. Cách đặt độ dài tối đa của cột datagridview
- 29. Độ dài tối đa của tên cột trong MySQL
- 30. Độ dài tối đa cho HTML <textarea>
Tôi không chắc tôi hiểu tại sao bạn hỏi điều này ngay từ đầu. Bạn đã tìm thấy một vấn đề? Đối với giới hạn kích thước Blob, tôi không thể tìm thấy bất kỳ, vì vậy tôi nghĩ rằng nó có thể là vào bộ nhớ của máy tính của khách hàng và giới hạn tải lên của máy chủ. –
Có, trên một thử nghiệm cơ bản, một cố gắng để phân bổ một bộ đệm lớn như 512MB (tôi thử nghiệm giới hạn) trong Firefox và nó chỉ bị rơi. – cavila
Cũng cố gắng phân bổ một cái gì đó tương tự trên một biến đồng hồ tại thanh tra chrome và chrome crashing quá bây giờ khi tôi mở cửa sổ thanh tra. Mong trình duyệt khởi chạy một số loại lỗi như OUT_OF_MEMORY. Tôi quan tâm đến việc sử dụng các trình đọc tệp để xử lý các tệp lớn trên máy khách. Hiện tại tôi có thể tránh các sự cố bằng cách cắt đọc các tệp lớn (hình ảnh lớn) thành các bộ đệm nhỏ hơn. – cavila