2011-09-12 45 views
16

Các lập trình viên bên dưới, tôi đã đặt câu hỏi này trước nhưng không nhận được câu trả lời kết luận cho nó. Câu hỏi đặt ra là: bao nhiêu dữ liệu tôi có thể trả lại một cách an toàn từ và cuộc gọi bài ajax trước khi tôi chạy vào một số hạn chế ở đâu đó?Kích thước tối đa của ajax trả về dữ liệu

Các tình huống cơ bản như thế này: front-end thực hiện cuộc gọi ajax tới bộ điều khiển/mô hình php. bộ điều khiển trả về một bó hoặc các hàng từ cơ sở dữ liệu hoặc trả về một số html đại diện cho một số báo cáo sẽ được lưu trữ trong một chuỗi js var sẽ được hiển thị sau này.

Tôi thấy hai giới hạn ở đây: kích thước của dữ liệu được trả về thông qua cuộc gọi ajax và kích thước tối đa mà js var có thể giữ.

Bất kỳ ai cũng biết giới hạn là gì?

nhờ

Trả lời

12

Xem câu trả lời này: Javascript maximum size for types?

Nói tóm lại, trừ khi trình duyệt có quy định khác, kích thước biến không phải chịu một hạn chế. Đối với Ajax: Không có giới hạn, trừ khi được xác định phía máy chủ (chẳng hạn như this one).

+0

Cảm ơn Rob. Bất kỳ ý tưởng làm thế nào để thiết lập giới hạn trong môi trường khác với NET? – djeetee

+0

Tôi không biết bất kỳ giới hạn phản hồi nào do máy chủ xác định khác. Bạn chỉ phải chạy một thử nghiệm trên máy chủ của bạn (môi trường) để xác nhận tuyên bố của tôi. Một máy chủ có thể được cấu hình để từ chối yêu cầu quá lớn, bằng cách sử dụng '.htaccess' ví dụ:' LimitRequestBody' và ['LimitXMLRequestBody'] (http://httpd.apache.org/docs/2.2/mod/core.html#limitxmlrequestbody). –

0

Tôi không nghĩ rằng yếu tố nào bạn liệt kê sẽ là vấn đề. Những gì tôi sẽ xem xét là:

  • Lượng thời gian người dùng sẵn sàng chờ phản hồi. Ngoài ra, ngôn ngữ lập trình phía máy chủ hoặc máy chủ web của bạn có thể áp đặt giới hạn về độ dài của bất kỳ yêu cầu nào.
  • Lượng RAM khách hàng có. Ngay cả khi không có giới hạn kích thước thay đổi, cuối cùng máy tính sẽ hết dung lượng.

Trong những trường hợp này, bạn hầu như luôn cung cấp dữ liệu nhỏ hơn một lúc và cho phép người dùng tải dữ liệu họ cần (hoặc bằng cách tạo hạt [hiển thị tóm tắt và cho phép chúng đi sâu] hoặc phân trang/tìm kiếm). Không ai muốn đợi 10 phút để tải trang web và HTTP không thực sự xử lý tất cả các yêu cầu lớn.

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