подскажите, как уменьшить траффик при использовании iframe? В чате каждые несколько секунд обновляется фрейм с сообщениями. Для каждого пользователя каждый раз отправляется полностью все сообщения со времени, когда он вошел, до нового сообщения.
Можно ли как-то только добавлять во фрейм новые сообщения не используя ajax? Или все чаты, написанные без ajax, отправляют каждую секунду заново все окно сообщений (например, за несколько часов разговора).
Спустя 3 часа, 7 минут, 26 секунд (4.12.2010 - 08:32) Игорь_Vasinsky написал(а):
Цитата |
Или все чаты, написанные без ajax, отправляют каждую секунду заново все окно сообщений (например, за несколько часов разговора). |
как настроишь... можно вообще кнопу "релоад" сделать и перевести всё на ручной режим.
а чё тя так траф пугает ? он там мелкий.
Спустя 3 часа, 7 минут, 20 секунд (4.12.2010 - 11:39) FatCat написал(а):
Цитата (program90 @ 4.12.2010 - 06:24) |
Можно ли как-то только добавлять во фрейм новые сообщения не используя ajax? |
Можно.
Можно даже дать пользователю выбрать рефрешить или добавлять.
Если чекбокс рефреша выбран, сервер отдает весь текст беседы методом innerHTML =
Если чекбокс сброшен, сервер отдает только новые сообщения методом innerHTML +=
Цитата (Игорь_Vasinsky @ 4.12.2010 - 09:32) |
а чё тя так траф пугает ? он там мелкий. |
При активном общении 4-5 Мб в час - легко. По эджу с лимитного мобильного тарифа вполне ощутимо.
Спустя 51 минута, 40 секунд (4.12.2010 - 12:31) Slays написал(а):
program90
зачем ты обновляешь постоянно главный фрейм с сообщениями, создай невидимый фрейм в 0px и обновляй его, передавая в основной фрейм только последние сообщения из базы через innerHTML +=
зачем ты обновляешь постоянно главный фрейм с сообщениями, создай невидимый фрейм в 0px и обновляй его, передавая в основной фрейм только последние сообщения из базы через innerHTML +=
Спустя 8 минут, 54 секунды (4.12.2010 - 12:40) sergeiss написал(а):
Цитата (program90 @ 4.12.2010 - 06:24) |
подскажите, как уменьшить траффик при использовании iframe? |
А чем аякс не нравится? Там гарантированно трафик будет минимально возможный.
Спустя 1 час, 13 минут, 53 секунды (4.12.2010 - 13:54) program90 написал(а):
Slays
Спасибо. Сейчас попробую. Может так лучше да.
А почему через просмотр кода в бразуере (ctrl+U) не видно то что загрузилось в фрейм?
Спасибо. Сейчас попробую. Может так лучше да.
А почему через просмотр кода в бразуере (ctrl+U) не видно то что загрузилось в фрейм?
Спустя 3 часа, 27 минут, 52 секунды (4.12.2010 - 17:21) program90 написал(а):
Игорь_Vasinsky
Просто вдруг будет много текста и тогда будет заметно обновление каждую секунду. Если 1 кб приходит каждую секунду, то в месяц - где-то 1 Гб. Т.е. получается много.
Просто вдруг будет много текста и тогда будет заметно обновление каждую секунду. Если 1 кб приходит каждую секунду, то в месяц - где-то 1 Гб. Т.е. получается много.
Спустя 41 секунда (4.12.2010 - 17:22) program90 написал(а):
sergeiss
Можно и с аякс в принципе...
Можно и с аякс в принципе...
Спустя 44 минуты, 38 секунд (4.12.2010 - 18:07) program90 написал(а):
FatCat
Игорь_Vasinsky
А что значит рефреш? Заголовок метатега? Или просто обновление из главного окна с фреймами с помощью javascript setInterval?
И еще вопрос:
Почему может не работать innerHTML для фрейма в этом коде? ('kkkkk' не добавляется к тексту):
И еще: почему не работают полосы прокрутки в фрейме? В гугле написано, что если загружать в фрейм страницу с другого сервера, то тогда будет какое-то ограничение доступа к фрейму. А что это за ограничение? И можно ли в src, например, написать window.php?
У меня в srс написано "general_window.html" (т.е. файл находится локально). А форма обновления фрейма обращается к "general_window.php", т.е. этот файл тоже находится локально в той же папке, где фрейм. Но скроллинг в окне не работает, когда текст уходит ниже экрана.
Игорь_Vasinsky
А что значит рефреш? Заголовок метатега? Или просто обновление из главного окна с фреймами с помощью javascript setInterval?
И еще вопрос:
Почему может не работать innerHTML для фрейма в этом коде? ('kkkkk' не добавляется к тексту):
<script type="text/javascript">
setInterval(document.getElementById('gframe').document.body.innerHTML += 'kkkkk';", 7000);
</script>
И еще: почему не работают полосы прокрутки в фрейме? В гугле написано, что если загружать в фрейм страницу с другого сервера, то тогда будет какое-то ограничение доступа к фрейму. А что это за ограничение? И можно ли в src, например, написать window.php?
У меня в srс написано "general_window.html" (т.е. файл находится локально). А форма обновления фрейма обращается к "general_window.php", т.е. этот файл тоже находится локально в той же папке, где фрейм. Но скроллинг в окне не работает, когда текст уходит ниже экрана.
Спустя 2 часа, 1 минута, 54 секунды (4.12.2010 - 20:09) Slays написал(а):
поставь у фрейма скролинг на авто и все
Спустя 31 минута, 4 секунды (4.12.2010 - 20:40) program90 написал(а):
Все равно не работает.
А в Internet Explorer'е фреймы не отображаются. Но зато innerHTML работает, т.е. текст 'kkkkk' постоянно прибавляется.
А в Internet Explorer'е фреймы не отображаются. Но зато innerHTML работает, т.е. текст 'kkkkk' постоянно прибавляется.