Комета, responseText и использование памяти

Вы могли использовать Delphi для .NET и неуправляемого экспорта, также названного обратным P/Invoke.

Это по существу позволяет Вам создать .NET .dll, который имеет полный доступ к платформе .NET, но может быть загружен любым родным языком, точно так же, как Вы были бы с любым .dll, и без издержек com interop.

Вот простой пример: http://cc.codegear.com/Item/22688

5
задан glomad 14 August 2009 в 02:50
поделиться

2 ответа

Вот как работает длительный опрос. Вы сохраняете индекс в последнем прочитанном номере строки и с каждым тиком вашего интервала, считываемым с этой точки. Это одно длинное соединение, следовательно, один длинный ответ.

Свежий responseText будет означать новое соединение. Но тогда это уже не была бы комета;)

1
ответ дан 14 December 2019 в 19:20
поделиться

Вопреки другому ответу, «длинный опрос» — это не одна длинная связь. «Длинный опрос» — это множество соединений в последовательности, каждое из которых настроено на то, чтобы оставаться на связи в течение достаточно длительного периода времени, если ответ не требуется. Они делают тайм-аут (обычно около 25-30 с), а затем устанавливают новое соединение. Поскольку HTTP1.1 позволяет повторно использовать существующие соединения, соединение не нужно повторно согласовывать и, следовательно, может быть восстановлено практически мгновенно.

Поэтому просто используйте несколько запросов. Поскольку на самом деле существуют незначительные накладные расходы на повторное установление соединения, и каждое новое соединение позволит вам уничтожить предыдущий текст ответа, это вполне жизнеспособное решение с точки зрения производительности / накладных расходов, а также решит ваши проблемы с памятью.

[Править] Я говорю по опыту, как один из авторов WebSync.

4
ответ дан 14 December 2019 в 19:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: