Протрите тег сценария без повторного подключения
Вы можете удалить тег script каждый раз, когда он выполняется, добавив некоторый код, когда сервер печатает чанк.
<script type="text/javascript">
// Calls your message handler
app.handle("Hello World");
// Removes this script element
var scripts = document.getElementsByTagName("script"),
elem = scripts[scripts.length - 1];
elem.parentNode.removeChild(elem);
</script>
сжатая версия
<script type="text/javascript">
app.handle("Hello World");
(function(){var a=document.getElementsByTagName("script"),a=a[a.length-1];a.parentNode.removeChild(a)})();
</script>
Но, как упоминал Альфред, Hidden Iframe или Forever Iframe слишком раздражают, чтобы их использовать. Лично я думаю, что этот классический способ заставляет Комету выглядеть изящной и очаровательной.
jQuery Stream
Я рекомендую использовать jQuery Stream , который обеспечивает унифицированный двусторонний интерфейс связи по протоколу WebSocket и HTTP. Это облегченная клиентская библиотека JavaScript, такая как jQuery.
Усовершенствованный транспорт Iframe, используемый jQuery Stream, во многих отношениях отличается от классического, запрашивая ответ text / plain, содержащий только сообщения вместо ответа text / html, и очищает ответ каждый раз, когда обрабатывается.
В соответствии с тестом , проведенным некоторыми пользователями, Internet Explorer 8, использующий улучшенный транспорт Iframe, не имеет проблем с сообщениями в несколько мегабайт (в отличие от Firefox, использующего XMLHttpRequest в качестве транспорта, который действительно испытывает трудности).