Есть ли способ очистить responseText объекта XHR, не уничтожая объект XHR?
Мне нужно поддерживать постоянное соединение с веб-сервером, чтобы передавать оперативные данные в браузер. Проблема в том, что проходит относительно большой объем данных (несколько сотен килобайт в секунду постоянно), поэтому использование памяти является большой проблемой, потому что это соединение должно оставаться открытым как минимум несколько минут. responseText очень быстро становится очень большим, даже несмотря на то, что JSON, который я отправляю обратно, был настолько мал, насколько это возможно.
Из-за того, как работает приложение на стороне сервера, если я использую короткий опрос в стиле AJAX и просто уничтожаю объект XHR, когда я закончу с ним, я пропускаю значительные объемы важных данных даже за те несколько миллисекунд, которые требуются для синтаксического анализа. ответ, создайте новый XHR и отправьте его. У меня нет возможности использовать перекрывающиеся запросы, так как веб-сервер принимает только одно соединение за раз. (Не спрашивайте.) Итак, Comet — именно та модель, которая мне нужна.
Что я хотел бы сделать, так это проанализировать каждый фрагмент JSON, когда он возвращается с сервера, а затем очистить responseText, чтобы я мог продолжать использовать одно и то же соединение. Однако responseText доступен только для чтения. Его нельзя очистить напрямую ни одним из найденных мной способов.
Есть ли часть картины, которую я здесь упустил? Кто-нибудь знает какие-нибудь приемы, которые я могу использовать, чтобы освободить responseText, когда я закончу его читать? Или есть другое место, куда могут отправляться ответы сервера?
Я не включаю код, потому что это действительно почти независимый от кода вопрос. Подпрограммы Javascript, которые порождают XHR и обрабатывают возвращаемые данные, очень и очень просты.