2010-05-29 30 views
42

Có số lượng dữ liệu tối đa mà ứng dụng JavaScript có thể lưu trữ không?Giới hạn bộ nhớ JavaScript

Tôi đoán điều này được trình duyệt xử lý và mỗi trình duyệt có giới hạn của nó?

Nếu không có giới hạn, tệp trang sẽ được tạo không? Nếu vậy, điều đó sẽ không an toàn sao?

+2

Có một số hạn chế, mặc dù điều này phụ thuộc vào trình duyệt. Ví dụ, Firefox có giới hạn về không gian ngăn xếp cũng như mức tiêu thụ CPU quá mức. – Rushyo

Trả lời

33

AFAIK, không có giới hạn trên, kịch bản của bạn về cơ bản có thể sử dụng bộ nhớ cho đến khi hệ thống hết bộ nhớ (bao gồm cả hoán đổi). Không giới hạn trên không có nghĩa là bạn phải ăn hết, người dùng có thể không thích nó.

+0

Cảm ơn, tôi đã tự hỏi, tôi không định ăn hết. Mặc dù tôi có thể tưởng tượng một số tình huống mà các máy cũ sẽ gặp một số vấn đề (hoạt hình jquery, sắp xếp bảng vv ..) –

4

Không có giới hạn bộ nhớ cho chương trình Javascript. Kịch bản của bạn có thể hog tất cả RAM trên máy tính của bạn. Tuy nhiên, không nên sử dụng hết bộ nhớ trên máy của người dùng. Nếu bạn đang đối phó với rất nhiều dữ liệu tôi sẽ đề nghị bạn kiểm tra bộ nhớ đệm.

+2

Một tập lệnh không thể hog tất cả RAM trên máy. Nó vẫn sẽ bị ràng buộc vào không gian quá trình cơ bản. Vì vậy, trên một trình duyệt 32 bit, đó chỉ là 4GB bộ nhớ địa chỉ. –

+0

Tôi tin rằng nó là 2Gb trong thực tế, tốt trong một số trường hợp ít nhất, vì vậy giả sử 2GB và nó sẽ làm việc tốt ở khắp mọi nơi – GameDeveloper

15

Tôi googled "giới hạn bộ nhớ của trình duyệt web" và tìm thấy một chủ đề với một phản ứng rất tốt: https://groups.google.com/d/topic/comp.lang.javascript/332YSnPsw_w/discussion

Bạn cũng có thể tìm kiếm comp.lang.javascript cho javascript memory limit.

Xem thêm này bài Stack Overflow: Maximum size of an Array in Javascript, điều này gợi ý bạn có thể lưu trữ lên đến 2 -1 = 4.294.967.295 = 4,29 tỷ yếu tố

(Tôi đã cố gắng tìm một câu trả lời tốt, và "có Tôi không thể chạy vào một vấn đề sản xuất cho một dự án nhiều triệu đô la và nói với quản lý, "Vâng, tôi cho rằng không có giới hạn trên và tất cả mọi thứ sẽ ổn." Hãy thử làm một chứng minh-khái niệm, ví dụ như tải rất nhiều điều khiển combobox trong khung giao diện người dùng JavaScript của bạn, vv Bạn có thể khám phá khuôn khổ của bạn có một số suy thoái hiệu suất.)

+0

Chrome cảnh báo rằng trang web bạn liên kết có phần mềm độc hại. Có lẽ lấy thông tin từ trang web và sao chép trực tiếp tại đây thay vì cung cấp liên kết? – jasop

+0

Cảm ơn. Đã sửa lỗi, thêm một chút thông tin. Tôi thực sự muốn viết blog về điều này chi tiết hơn tại một số điểm. Nhưng câu trả lời của Tiến sĩ Stockton trong chuỗi liên kết là những gì bạn đang tìm kiếm. –

2

Firefox hỗ trợ tùy chọn "javascript.options.mem.max" và nếu bạn tìm kiếm trên đó bạn có thể tìm thấy các cuộc thảo luận về các giá trị hợp lý mà mọi người đã tìm thấy khả thi.

Không chắc chắn có bao nhiêu người có thể bị làm phiền trong đó và thiết lập nó, nhưng nói cho bản thân mình tôi đặt nó là 128000 (đó là 128M).

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