Драсти всем. Проблема в следующем. Есть JavaScript, который с помощью AJAX получает данные от php-скрипта, каждую секунду. Далее следует вывод данных, т.е., сделано это для того, чтобы обнавлялась не вся страница, а отдельный блок на странице, в моём случае он выглядит так:
Всё вроде хорошо работает, данные в блоке обнавляются каждую секунду, не прибегая при этом к полной перезагрузке страницы, но у меня таких блоков на странице должно быть приличное колличество (больше 30). Я решил эту задачу следующим образом:
1. В начало страницы я вставляю скрипты для получения информации из файлов, т.е., каждые скрипт, каждую секнду с помощью AJAX получет данные из файлов, т.е., вставил в начало 30 скриптов.
2. Далее там где мне нужно на странице выводить данные, я вставляю блоки <div>.
Вот здесь теперь возникает проблема. Данные на странице обнавляются, но сильно тормозит на локали, на хосте я вообще молчу. Вопрос к знающим людям: помогите пожалуйста оптимизировать задачу, чтобы работало без тормозов. Может както можно объединить эти все скрипты?
Спустя 2 часа, 27 минут, 46 секунд (6.02.2009 - 13:41) FatCat написал(а):
30 обменов с сервером каждую секунду? Ужасно...
ИМХО, надо исхитряться получать единый контент с сервера, и затем уже средствами джаваскрипт пилить на части и раскидывать по дивам.
И все равно не понимаю, что за информация такая, которая требует обновления ежесекундно...
Спустя 30 минут, 51 секунда (6.02.2009 - 14:12) HugoBorz написал(а):
Цитата (FatCat @ 6.02.2009 - 10:41) |
30 обменов с сервером каждую секунду? Ужасно... ИМХО, надо исхитряться получать единый контент с сервера, и затем уже средствами джаваскрипт пилить на части и раскидывать по дивам. И все равно не понимаю, что за информация такая, которая требует обновления ежесекундно... |
Да, я сам понимаю, что 30 коннектов это чушь, просто не мог решить эту задачу какимто другим способом..... Делать это нужно для того, чтобы каждый таймер, брал данные из отдельного файла.... Думаю на примере работы будет более ясно. Вот на хосте как выглядит данный
скриптКто, что сможет посоветовать?
Спустя 5 часов, 12 минут, 35 секунд (6.02.2009 - 19:25) HugoBorz написал(а):
Я так понимаю, что никто не может предложить рациональное решение этой проблемы? Очень нужно, просто. Помогите пожалуйста.
Спустя 35 минут, 23 секунды (6.02.2009 - 20:00) FatCat написал(а):
Если данные из файлов, не понял смысл ежесекундного обновления...
Ну да ладно.
Попробую объяснить "на пальцах" алгоритм сервер-клиентского распределения задач.
Обращение серверного сценария к файлу на сервере происходит за единицы милисекунд; обращение сценария на странице в браузере на машине клиента к файлу на сервере происходит за единицы секунд - на 3 порядка дольше.
Вывод простой: обращаться к трем десяткам файлов должен единственный php-сценарий. Собрал, сединил в одну строку через разделитель (например через "|") и отправил на страницу.
На странице джаваскрипт рассплитовал:
Код |
texts_array= text.split('|'); |
Затем в цикле по массиву перезаписал контейнеры с информацией, например так:
Код |
for(i in texts_array){ // формируем в переменной айдишник контейнера вида id_999 eval('id_to_inner = "id_' + i + '"');
// Перезаписываем содержимое контейнеров: document.getElementById(id_to_inner).innerHTML = texts_array[i]; } |
Спустя 59 минут, 24 секунды (6.02.2009 - 21:00) HugoBorz написал(а):
Спасибо. буду решать задачу.