После того как я на свою страничку добавила динамические селекты (код селектов любезно предоставлен twin'ом в теме Динамические select'ы на стр 3, Gabriel архив рабочий выложил)
моя страничка стала грузится 4 сек если только один селект открываю и 11 сек если сразу 4 селекта загружаю.
До добавления select' ов моя страничка грузилась 0 сек.
скажите пожалуйста, как с этим бороться можно? код очень хороший, не хочу от него отказываться(((
Спустя 4 минуты, 52 секунды (21.06.2010 - 12:07) qpayct написал(а):
ссылку бы ешо на тему........
и свой код заодно........
и свой код заодно........
Спустя 33 минуты, 57 секунд (21.06.2010 - 12:41) zvezda_t написал(а):
Провела много тестов и выяснила, что торможение начинается, как только я пытаюсь этот код для селектов вставлять в свою форму несколько раз.
Когда два раза - уже появляется 1 сек, задержки.
Для того чтобы его дважды вставить я сделала следующее:
1) в форме id для div сделала переменными
задаю разные $i и вставляю эту форму несколько раз куда нужно
2)
в файле selects.php зменила, чтоб все переменные проверить
3)
и конечно сам ajax.js
Когда два раза - уже появляется 1 сек, задержки.
Для того чтобы его дважды вставить я сделала следующее:
1) в форме id для div сделала переменными
задаю разные $i и вставляю эту форму несколько раз куда нужно
<?php echo country($i);
<div id="region$i" ></div>
<div id="city$i" ></div>
?>
2)
в файле selects.php зменила, чтоб все переменные проверить
for($j=1; $j<=2; $j++)
{
if(!empty($_POST["country_id$j"]))
echo region($_POST["country_id$j"]);
if(!empty($_POST["region_id$j"]))
echo city($_POST["region_id$j"]);
}
3)
и конечно сам ajax.js
function Country(i)
{
div_select = "region"+i;
d.getElementById('city'+i).innerHTML = '';
var a = d.getElementById('country_id'+i).value;
query = "country_id"+i+"="+a;
Request(query);
}
function Region(i)
{
div_select = "city"+i;
var a = d.getElementById('region_id'+i).value;
query = "region_id"+i+"="+a;
Request(query);
}
Спустя 14 минут, 20 секунд (21.06.2010 - 12:56) zvezda_t написал(а):
с каждым добавлением в скрипт формы с div - у меня добавляется секунда(((
Спустя 21 секунда (21.06.2010 - 12:56) qpayct написал(а):
эта функция заменит тебе 2 твои
вообще ты не с того конца начинаешь задачу решать, но конечно учитывая тот факт, что твой код явно стоит миллионы, лучше конечно не выкладывать
а! и ajax.php переименуй в ajax.js
function jsLocation(o, i) {
var obj = document.getElementById(o+i);
query = o+i+'='+obj.value;
Request(query);
}
вообще ты не с того конца начинаешь задачу решать, но конечно учитывая тот факт, что твой код явно стоит миллионы, лучше конечно не выкладывать

а! и ajax.php переименуй в ajax.js
Спустя 14 минут, 21 секунда (21.06.2010 - 13:10) zvezda_t написал(а):
в смысле не с того конца??
не понятно что ли объяснила или в принципе ВСЁ не правильно???
не понятно что ли объяснила или в принципе ВСЁ не правильно???

Спустя 13 минут, 11 секунд (21.06.2010 - 13:23) zvezda_t написал(а):
если попробовать вообще избежать индексов, то в этом случае как дважды или несколько раз вставить код?

Спустя 3 минуты, 25 секунд (21.06.2010 - 13:27) Basili4 написал(а):
Дело не в индексах. Я сделал примерно тоже самое и все нормально запускается на скорость не влияет
Спустя 2 минуты, 49 секунд (21.06.2010 - 13:30) zvezda_t написал(а):
а в чем тогда??? почему у меня с добавлением еще одной формы с селектами - торможение начинается?
Спустя 2 минуты, 28 секунд (21.06.2010 - 13:32) qpayct написал(а):
да понял я, понял. ты хочешь, чтоб за тебя написали сайт по типу доски обьявлений. единственное что я не понял, как ты собираешься это всё реализовать не имея базовых знаний?
ну да ладно. давай попробуем. может хоть тебе помогу
значит ты хочешь 2 селекта, значения которых при нажатии кнопки поиск передавались бы пост запросом?
- это неправильный подход и вообще постом лучше в этой ситуации не пользоватся, а уж тем более так.
- передавать следует не текст, а идентификаторы(по которому и будешь спец.функцией получать текст).
- ябы хранил и заполнял бы селекты из массивов и ключ соответственно использовал бы, как идентификатор.
это для начала.
ну да ладно. давай попробуем. может хоть тебе помогу

значит ты хочешь 2 селекта, значения которых при нажатии кнопки поиск передавались бы пост запросом?
- это неправильный подход и вообще постом лучше в этой ситуации не пользоватся, а уж тем более так.
- передавать следует не текст, а идентификаторы(по которому и будешь спец.функцией получать текст).
- ябы хранил и заполнял бы селекты из массивов и ключ соответственно использовал бы, как идентификатор.
это для начала.
Спустя 6 минут, 4 секунды (21.06.2010 - 13:38) Basili4 написал(а):
qpayct
Ты немного не понял есть селекты регион район город страна надо по ним выбирать адрес чела передавать в базу и при нажатии конопочки редактирования показывать выбранные селекты
Ты немного не понял есть селекты регион район город страна надо по ним выбирать адрес чела передавать в базу и при нажатии конопочки редактирования показывать выбранные селекты
Спустя 2 минуты, 47 секунд (21.06.2010 - 13:41) Basili4 написал(а):
Том ну покажы код который у тебя исполняется при получении ответа от сервера
Спустя 4 минуты, 58 секунд (21.06.2010 - 13:46) qpayct написал(а):
тааак. в таком случае яб использовал nested sets
Спустя 4 минуты, 44 секунды (21.06.2010 - 13:51) zvezda_t написал(а):
qpayct, Вы издеваетесь? у меня же уже всё работает (только медленно(( )
неужели из-за этого вообще всё переделывать придется?
неужели из-за этого вообще всё переделывать придется?
Спустя 8 минут, 38 секунд (21.06.2010 - 13:59) qpayct написал(а):
ну что ты! яж хочу, как лучше.
помимо всего прочего этот потход решит множество пробелм в будущем о которых ты пока даже не задумываешься.
помимо всего прочего этот потход решит множество пробелм в будущем о которых ты пока даже не задумываешься.
Спустя 2 минуты, 14 секунд (21.06.2010 - 14:02) zvezda_t написал(а):
Цитата |
помимо всего прочего этот потход решит множество пробелм в будущем о которых ты пока даже не задумываешься. |
может и так, да только не понятно же((
Спустя 5 минут, 23 секунды (21.06.2010 - 14:07) qpayct написал(а):
хех. я сам разбирался и писал класс неделю
зато по пути и ООП освоишь и вообще поймёшь что к чему и кто за кем
так что дерзай.


Спустя 6 минут, 19 секунд (21.06.2010 - 14:13) zvezda_t написал(а):
Цитата |
хех. я сам разбирался и писал класс неделю smile.gif зато по пути и ООП освоишь и вообще поймёшь что к чему и кто за кем wink.gif так что дерзай. |
я конечно не против заниматься саморазвитием и обучаться новым крутым фишкам... Да только - я ГОРЮ УЖЕ!!! (((((
ну сделайте что нибудь!!!! но должен же он работать нормально! в чем проблема???
как мне несколько версий прикрутить????
Почистил тему от флуда. Для праздного общения, не ориентированного на широкий круг читателей, используйте личку.//Nikitian
Спустя 22 часа, 32 минуты, 7 секунд (22.06.2010 - 12:45) zvezda_t написал(а):
Оказывается, дело не в структуре селектов и код тут не причем.
Торможение из за частых запросов к БД.
я немножко оптимизировала свои запросы - несколько секунд выиграла.
что еще можно сделать???
Торможение из за частых запросов к БД.
я немножко оптимизировала свои запросы - несколько секунд выиграла.
что еще можно сделать???

Спустя 7 минут, 4 секунды (22.06.2010 - 12:52) qpayct написал(а):
откуда людям знать сколько каких у тебя запросов в БД и зачем они вообще там нужны?
Спустя 8 минут, 24 секунды (22.06.2010 - 13:01) zvezda_t написал(а):
Цитата |
откуда людям знать сколько каких у тебя запросов в БД и зачем они вообще там нужны? |
я свой кладр здесь уже хорошо отпиарила)))

а запросы у меня такие:
до изменения
$res = mssql_query("SELECT * FROM kladr WHERE CODE LIKE '".$region."%00000000'
AND CODE<>'".$region."00000000000' ORDER BY name");
после изменений
$res = mssql_query("SELECT * FROM kladr WHERE
left(CODE,2) ='$region' and right(CODE, 8) = '00000000'
AND CODE<>'".$region."00000000000' ORDER BY name");
убрав LIKE выйграла 4 сек.
но общее торможение по прежнему есть: 5 сек.
Спустя 26 минут, 11 секунд (22.06.2010 - 13:27) qpayct написал(а):
mssql никогда не пробовал....
из-за % в запросе по идее будет подтормаживать тоже.
давай как то организованей действуй, ладно?
1. сколько у тебя селектов?
2. какая иерархия? (к примеру 1.planets -> 2.countries -> 3.cities -> 4.streets)
3. должно ли менятся колличество категорий и подкатегорий в процессе?
и вообще излогать надо от и до задачу нормально, а так получается ты сама решила задачу в действительности не понимая, как правильно такие задачи решаются, и в конце ещё и удивляешься, а почему всё тормозит.....
из-за % в запросе по идее будет подтормаживать тоже.
давай как то организованей действуй, ладно?
1. сколько у тебя селектов?
2. какая иерархия? (к примеру 1.planets -> 2.countries -> 3.cities -> 4.streets)
3. должно ли менятся колличество категорий и подкатегорий в процессе?
и вообще излогать надо от и до задачу нормально, а так получается ты сама решила задачу в действительности не понимая, как правильно такие задачи решаются, и в конце ещё и удивляешься, а почему всё тормозит.....
Спустя 34 минуты, 35 секунд (22.06.2010 - 14:02) zvezda_t написал(а):

Цитата |
1. сколько у тебя селектов? 2. какая иерархия? (к примеру 1.planets -> 2.countries -> 3.cities -> 4.streets) 3. должно ли менятся колличество категорий и подкатегорий в процессе? |
1. у меня 7 групп по 6 селектов
2. Иерархия KLADR: Регион-Район-Город-Населённый пункт-Улица-Дом (всего 6 селектов)
3. конечно должно, например может быть так что нет Населённого пункта, тогда сразу переход к улицам
Спустя 28 минут, 39 секунд (22.06.2010 - 14:30) qpayct написал(а):
лучше всего только nested sets, как я уже и говорил. очень уж многозадачные у тебя наборы селектов получаются.... зачем если не секрет вообще столько селектов? 7*6 этож кошмар какой то
Спустя 7 минут, 44 секунды (22.06.2010 - 14:38) zvezda_t написал(а):
Цитата |
лучше всего только nested sets, как я уже и говорил. очень уж многозадачные у тебя наборы селектов получаются.... зачем если не секрет вообще столько селектов? 7*6 этож кошмар какой то |
6 - это как я уже говорила стандартная группа:
Иерархия KLADR: Регион-Район-Город-Населённый пункт-Улица-Дом (всего 6 селектов)
а 7 - это количество адресов,
адрес рабочий, адрес домашний и т д. много их)))
nested sets- скажите честно - это сложно? я уже боюсь что то усложнять дальше...
Спустя 5 минут, 10 секунд (22.06.2010 - 14:43) SlavaFr написал(а):
да на зачем ей nested sets нужен?
Где находятся ирархия в дереве, чтобы nested sets применять?
Где находятся ирархия в дереве, чтобы nested sets применять?
Спустя 3 минуты, 39 секунд (22.06.2010 - 14:47) qpayct написал(а):
SlavaFr
nested sets идеально подходит под такие варианты и не надо ля-ля, разберись сначала что ей надо и что такое nseted sets, а впадать в панику это всегда пожалуйста.
zvezda_t
это не сложно, когда разберёшься. я в тебя верю.
сколько таблиц, каких и какое именно построение?
nested sets идеально подходит под такие варианты и не надо ля-ля, разберись сначала что ей надо и что такое nseted sets, а впадать в панику это всегда пожалуйста.
zvezda_t
это не сложно, когда разберёшься. я в тебя верю.
сколько таблиц, каких и какое именно построение?
Спустя 9 минут, 1 секунда (22.06.2010 - 14:56) SlavaFr написал(а):
я просто хочу услышать хотябы одно приемущество nested sets для решение данной задачи.
о.т.: за панику, извеняюсь, откоректировал мое замечание.
о.т.: за панику, извеняюсь, откоректировал мое замечание.
Спустя 41 минута, 9 секунд (22.06.2010 - 15:37) qpayct написал(а):
в таком случае лады 
преимуществ в данной ситуации несколько:
1. вместо того, чтобы при каждой загрузке выгружать всю таблицу, выгружается только та её часть, которая нужна для дальнейшей работы. тоесть запросов больше, но они существенно меньше. в комплекте с аяксом работать будет супер.
2. на мой взгляд и по моему опыту нет ничего лучше чем nested sets для мультивложенных категорий, а в случае когда категории и подкатегории добавляются и удаляются это вообще само собой понятно.
3. подумай, как и какие именно данные ты будешь хранить, чтобы всегда знать полный путь? в nested sets всё что нужно помнить это - id и всё. одним запросом легко достаётся полный путь и в итоге меню "хлебная крошка" для удобства.
всё это можно сделать и без nested sets, но вот как? может есть предложения получше?

преимуществ в данной ситуации несколько:
1. вместо того, чтобы при каждой загрузке выгружать всю таблицу, выгружается только та её часть, которая нужна для дальнейшей работы. тоесть запросов больше, но они существенно меньше. в комплекте с аяксом работать будет супер.
2. на мой взгляд и по моему опыту нет ничего лучше чем nested sets для мультивложенных категорий, а в случае когда категории и подкатегории добавляются и удаляются это вообще само собой понятно.
3. подумай, как и какие именно данные ты будешь хранить, чтобы всегда знать полный путь? в nested sets всё что нужно помнить это - id и всё. одним запросом легко достаётся полный путь и в итоге меню "хлебная крошка" для удобства.
всё это можно сделать и без nested sets, но вот как? может есть предложения получше?
Спустя 25 минут, 2 секунды (22.06.2010 - 16:02) SlavaFr написал(а):
k 1 такое заявление можно зделать и к обычному селекту, а where зделанно для того, чтоб не всю таблицу загружать
к 2 а где мультивложенния категорий? к стате удаление и добавление подкатегорий явяется в nested set самой емкой операцией, так как приходится таблицу блокировать и упдате идет через всю таблицу.
т.е при загруженой странице делать эти опирации просто опасно.
к 3 да, это все преимущества, но я хотел узнать о преимуществе для решения данной задачи.
к 2 а где мультивложенния категорий? к стате удаление и добавление подкатегорий явяется в nested set самой емкой операцией, так как приходится таблицу блокировать и упдате идет через всю таблицу.
т.е при загруженой странице делать эти опирации просто опасно.
к 3 да, это все преимущества, но я хотел узнать о преимуществе для решения данной задачи.
Спустя 45 минут, 7 секунд (22.06.2010 - 16:47) qpayct написал(а):
1. нет. и спорить по этому поводу я больше не буду.
2.
2.
Цитата |
3. должно ли менятся колличество категорий и подкатегорий в процессе? |
Цитата |
3. конечно должно, |
вот такие дела.... читать надо внимательней.
ничего опасного я в этом не вижу, если нормально делать, а то что это тяжелая операция - не страшно ведь она то как раз выполнятся будет редко в отличие от других, которые значительно упростят задачу. там процессы, если память не подводит, выполняются на виртуально продублированых таблицах.
3. все преимущества, что я описал - преимущества к этой задаче(которая до сих пор не изложена кстати).
да и вообще чего ты мне пытаешься доказать? думаешь сможешь сделать лучше? попробуй.
ничего опасного я в этом не вижу, если нормально делать, а то что это тяжелая операция - не страшно ведь она то как раз выполнятся будет редко в отличие от других, которые значительно упростят задачу. там процессы, если память не подводит, выполняются на виртуально продублированых таблицах.
3. все преимущества, что я описал - преимущества к этой задаче(которая до сих пор не изложена кстати).
да и вообще чего ты мне пытаешься доказать? думаешь сможешь сделать лучше? попробуй.
Спустя 20 минут, 21 секунда (22.06.2010 - 17:07) Gabriel написал(а):
мать вашу превратили тему в ужасный срач! (извиняюсь за мой французкий) человек нашел проблему и четко и ясно написал, что данные селекты непричем.
тобиш решение одно и стандартное.
1. оптимизация серверной части сайта (уменьшение лишних телодвижений, замена ресурсоемких функций менее ресурсоемкими.).
2. оптимизация картинок (даже гугловский плагин может сжать размер картинок без потерь в качестве.)
3. сжатие css/html/js до нечитебельности тобиш применение Minify css/js/html (не читабельно, но никто не отменял использование нечитабельных документов на сервере и читабленых копий в случае если нужно что-то поменять).
4(только в случае использования множества картинок). сделать их все спрайтами тобиш имеем одну картинку которую отдаем юзверям и далее разгребаем ее background-position:;
5. можно использовать кеширование данных пусть даже незначительно (несколько минут при большой посещаемости может помочь)
тобиш решение одно и стандартное.
1. оптимизация серверной части сайта (уменьшение лишних телодвижений, замена ресурсоемких функций менее ресурсоемкими.).
2. оптимизация картинок (даже гугловский плагин может сжать размер картинок без потерь в качестве.)
3. сжатие css/html/js до нечитебельности тобиш применение Minify css/js/html (не читабельно, но никто не отменял использование нечитабельных документов на сервере и читабленых копий в случае если нужно что-то поменять).
4(только в случае использования множества картинок). сделать их все спрайтами тобиш имеем одну картинку которую отдаем юзверям и далее разгребаем ее background-position:;
5. можно использовать кеширование данных пусть даже незначительно (несколько минут при большой посещаемости может помочь)
Спустя 3 минуты, 56 секунд (22.06.2010 - 17:11) SlavaFr написал(а):
Цитата (qpayct @ 22.06.2010 - 13:47) |
3. все преимущества, что я описал - преимущества к этой задаче(которая до сих пор не изложена кстати). |
я не хочу придератся, но как можно сказать, что nested sets имеет приемущества к данной задаче, если ты задачи еще не знаешь?
Спустя 3 минуты, 52 секунды (22.06.2010 - 17:15) qpayct написал(а):
Gabriel
подозреваю, что это из-за посылки данных постом, хотя это всё поиски чёрной кошки в тёмной комнате....... кода нет. ТС нет. и я тоже ухожу
SlavaFr
не умничай. перечитывай эту тему пока не наступит прозрение
подозреваю, что это из-за посылки данных постом, хотя это всё поиски чёрной кошки в тёмной комнате....... кода нет. ТС нет. и я тоже ухожу

SlavaFr
не умничай. перечитывай эту тему пока не наступит прозрение
Спустя 1 минута, 59 секунд (22.06.2010 - 17:17) Gabriel написал(а):
qpayct
ну да а если крякнуть js/ajax и прочий бред грузить будет точно быстрее но не в этом дело.
ну да а если крякнуть js/ajax и прочий бред грузить будет точно быстрее но не в этом дело.
Спустя 28 минут, 21 секунда (22.06.2010 - 17:46) inpost написал(а):
Отдельным файлом формируешь перечни селектов в переменной.
Страница формируется примерно раз в час, или раз в сутки, информацию о селектах берется из этой страницы инклюдом.
Таким образом обращений к базе данных можно свести к нулю.
ДОПОЛНЕНИЕ: уменьшить загрузку страницы можно ещё оптимизацией, как уже сказал Габриел, полный перечень оптимизаций можно узнать у плагина для Мозиллы: Page Speed.
Страница формируется примерно раз в час, или раз в сутки, информацию о селектах берется из этой страницы инклюдом.
Таким образом обращений к базе данных можно свести к нулю.
ДОПОЛНЕНИЕ: уменьшить загрузку страницы можно ещё оптимизацией, как уже сказал Габриел, полный перечень оптимизаций можно узнать у плагина для Мозиллы: Page Speed.
Спустя 8 минут, 39 секунд (22.06.2010 - 17:54) Basili4 написал(а):
inpost
Цитата (inpost @ 22.06.2010 - 18:46) |
Таким образом обращений к базе данных можно свести к нулю. |
не сведешь никак все селекты кроме первого создаются на основе выбраного значения в первом. я единственное что подсказал сделать это 1 раз выгрузить 1 селект и и использовать уже выгруженый код. более на клинской стороне делать нечего.
Спустя 20 минут, 20 секунд (22.06.2010 - 18:15) inpost написал(а):
Правильно, и по каждому селекту создавать свою переменную или целый массив. Оттуда и брать информацию для селектов.
В крайнем случае, если уж на столько большим он будет, разбить на несколько файлов и подгружать тем же инклюдом нужное
В крайнем случае, если уж на столько большим он будет, разбить на несколько файлов и подгружать тем же инклюдом нужное
Спустя 11 часов, 57 минут, 7 секунд (23.06.2010 - 06:12) zvezda_t написал(а):
_____________
Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)