Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > HTML и CSS
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2011, 17:20   #1
pray_driver
Форумчанин
 
Аватар для pray_driver
 
Регистрация: 18.08.2010
Сообщений: 140
По умолчанию Как не затратить память

Добрый день.

Интересно, что можно предложить в следующей ситуации в качестве выхода

На странице html требуется вывести много (столько, сколько в базе, штук 20-30 в средем случе) селектов
Код:
<select id="master1"></select> <select id="slave1"></select>
, где slave-селекты зависят от master-селектов

Все мастер-селекты одинаковы, только элементы разные выбраны в них, а вот слейв-селекты разные, в зависимости от того, что выбрано в мастере

Список option в каждом мастер-селекте содержит где-то 2000 значений, в слейв-селектах где-то по 5 значений

Суть проблемы такова, если мы всё это выведем в лоб, то страница зависает минут на 5, пока всё это формируется. Вот я думаю, есть ли какой-нибудь способ вместе 30 одинаковых мастер-селектов выводит один куда-нибудь в память, а если пользователь щёлкает по какому-нибудь из них- вытаскивать из памяти и открывать этот выпадающий селект как обычный.

Или это бред?
Люди бывают десяти типов: те, кто знают двоичную систему, и те, кто нет
pray_driver вне форума Ответить с цитированием
Старый 11.06.2011, 22:40   #2
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Для этого используется ajax.
На событие onchange селектора master вешаете обработчик события ajax. На сервере получаете запросом список slave селекторов и вставляете в slave1.
Хотя для этого я думаю вам надо почитать об ajax запросах.
Cronos20 вне форума Ответить с цитированием
Старый 14.06.2011, 06:15   #3
pray_driver
Форумчанин
 
Аватар для pray_driver
 
Регистрация: 18.08.2010
Сообщений: 140
По умолчанию

Цитата:
Сообщение от Cronos20 Посмотреть сообщение
Для этого используется ajax.
На событие onchange селектора master вешаете обработчик события ajax. На сервере получаете запросом список slave селекторов и вставляете в slave1.
Хотя для этого я думаю вам надо почитать об ajax запросах.
Я не писал в своём вопросе, что мне надо получить зависимость селектов, вопрос в другом был.

Проще напишу, забыли вобще про зависимости селектов
У вас есть дофига вот таких элементов на странице

Код:
<select id=1>
<option 1>
...
<option 2000>
</select>
...
<select id=30>
<option 1>
...
</option 2000>
</select>

и того получаем 60 тысяч элементов внутри выпадающих селектов. Причем все 30 одинаковые и содержат по 2000 элементов в выборе, просто в каждой значение selected разное

Ну пусть аяксом, но как сделать, чтобы страница не формировалась 5 минут. Пользователь ждать не любит.
Люди бывают десяти типов: те, кто знают двоичную систему, и те, кто нет
pray_driver вне форума Ответить с цитированием
Старый 14.06.2011, 07:26   #4
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Передавайте массив данных в JS и от туда формируйте массив вторичных селекторов. Для передачи данных удобно использовать ajax.
Виталий Желтяков вне форума Ответить с цитированием
Старый 14.06.2011, 21:34   #5
kirosin
Форумчанин
 
Аватар для kirosin
 
Регистрация: 15.01.2010
Сообщений: 209
По умолчанию

если нет надобности каждому пользователю при каждом посещении динамически формировать списки, можно формировать список при редактировании данных и сохранять в файл, потом простым инклудом этот файл подключать пользователю... хотя файл весьма увесистый может получиться, но если у пользователя нормальный интернет, то такая страничка в момент подгрузится, зато нагрузка на сервер на порядок ниже и это быстрее, чем каждый раз насиловать сервер для формирования содержимого, и проще в исполнении.
если содержимое меняется динамически, тогда надо делать так, как Виталий рекомендует, тогда резвость формирования страницы будет зависеть от вычислительной мощности компа пользователя, а сервер будет только выборкой данных заниматься.
Все генитальное просто.
kirosin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как улучшить память?:-) Kudryavtsev Свободное общение 38 09.05.2011 20:27
Как отследить используемую память? whatever Помощь студентам 5 29.09.2010 15:30
Как чистить память. я - чайник :) delphi-proger Общие вопросы Delphi 0 24.02.2010 14:53
Как выделить память 750mb? VintProg Общие вопросы Delphi 10 29.06.2009 20:30
Как чистить оперативную память??? Altera Операционные системы общие вопросы 10 16.05.2008 14:52