Có cách nào để xóa bỏ responseText của đối tượng XHR mà không phá hủy đối tượng XHR không?Sao chổi, responseText và sử dụng bộ nhớ
Tôi cần giữ kết nối liên tục mở cho máy chủ web để cấp dữ liệu trực tiếp vào trình duyệt. Vấn đề là, có một lượng dữ liệu tương đối lớn đi qua (vài trăm K mỗi giây liên tục), do đó việc sử dụng bộ nhớ là một vấn đề lớn, bởi vì kết nối này phải mở trong ít nhất vài phút. responseText rất lớn rất nhanh, mặc dù JSON tôi gửi lại đã được crunched nhỏ như nó có thể nhận được. Do cách ứng dụng phía máy chủ hoạt động, nếu tôi sử dụng tính năng bỏ phiếu ngắn kiểu AJAX và chỉ phá hủy đối tượng XHR khi tôi hoàn thành nó, tôi bỏ lỡ một lượng đáng kể dữ liệu quan trọng ngay cả trong vài phần nghìn giây cần phân tích phản hồi, tạo XHR mới và gửi đi. Tôi không có tùy chọn để sử dụng các yêu cầu chồng chéo, vì máy chủ web chỉ chấp nhận một kết nối tại một thời điểm. (Đừng hỏi.) Vì vậy, Comet chính là mô hình tôi cần.
Điều tôi muốn làm là phân tích từng đoạn JSON khi nó trở lại từ máy chủ và sau đó xóa hết câu trả lời để tôi có thể tiếp tục sử dụng cùng một kết nối. Tuy nhiên, responseText là chỉ đọc. Nó không thể trực tiếp làm trống bằng bất kỳ phương pháp nào tôi đã tìm thấy.
Có một phần của hình ảnh tôi thiếu ở đây không? Có ai biết bất kỳ thủ thuật tôi có thể sử dụng để giải phóng responseText khi tôi đọc xong nó? Hoặc là có một nơi khác các phản ứng máy chủ có thể đi?
Tôi không bao gồm mã vì đây thực sự gần như là một câu hỏi bất khả tri về mã. Các thói quen Javascript để sinh ra các XHR và xử lý dữ liệu trả về rất, rất đơn giản.
Cảm ơn. Tôi hiểu mô hình. Tôi đã chỉ hy vọng có một cách để duy trì kết nối mà không bị buộc phải lưu trữ tất cả mọi thứ đã từng nhận được trên kết nối đó trong một bộ đệm lớn. Việc bỏ phiếu dài là một sự cố dù sao, vì vậy tôi đoán nó đòi hỏi rất nhiều để nó hoạt động chính xác theo cách tôi cần :) – glomad
@ithcy: nó thực sự có vẻ giống như một yêu cầu hợp lý. Tôi chưa bao giờ nghĩ về nó nhiều cho đến khi bạn hỏi. Một 'xhr.flushResponseBuffer()' hoặc một cái gì đó có thể có giá trị cho các kết nối chạy dài, và sẽ tiết kiệm phải lưu một tham chiếu số dòng chết tiệt tất cả các thời gian. –