[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Время загрузки страницы
zvezda_t
Здравствуйте!

После того как я на свою страничку добавила динамические селекты (код селектов любезно предоставлен 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 и вставляю эту форму несколько раз куда нужно
<?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 твои
function jsLocation(o, i) {
var obj = document.getElementById(o+i);
query = o+i+'='+obj.value;
Request(query);
}


вообще ты не с того конца начинаешь задачу решать, но конечно учитывая тот факт, что твой код явно стоит миллионы, лучше конечно не выкладывать laugh.gif

а! и ajax.php переименуй в ajax.js

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

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

Спустя 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 написал(а):
да понял я, понял. ты хочешь, чтоб за тебя написали сайт по типу доски обьявлений. единственное что я не понял, как ты собираешься это всё реализовать не имея базовых знаний?

ну да ладно. давай попробуем. может хоть тебе помогу rolleyes.gif
значит ты хочешь 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 написал(а):
хех. я сам разбирался и писал класс неделю smile.gif зато по пути и ООП освоишь и вообще поймёшь что к чему и кто за кем wink.gif так что дерзай.

Спустя 6 минут, 19 секунд (21.06.2010 - 14:13) zvezda_t написал(а):
Цитата
хех. я сам разбирался и писал класс неделю smile.gif зато по пути и ООП освоишь и вообще поймёшь что к чему и кто за кем wink.gif так что дерзай.


я конечно не против заниматься саморазвитием и обучаться новым крутым фишкам... Да только - я ГОРЮ УЖЕ!!! (((((

ну сделайте что нибудь!!!! но должен же он работать нормально! в чем проблема???
как мне несколько версий прикрутить????


Почистил тему от флуда. Для праздного общения, не ориентированного на широкий круг читателей, используйте личку.//Nikitian

Спустя 22 часа, 32 минуты, 7 секунд (22.06.2010 - 12:45) zvezda_t написал(а):
Оказывается, дело не в структуре селектов и код тут не причем.
Торможение из за частых запросов к БД.
я немножко оптимизировала свои запросы - несколько секунд выиграла.
что еще можно сделать??? rolleyes.gif

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

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

я свой кладр здесь уже хорошо отпиарила))) biggrin.gif

а запросы у меня такие:
до изменения
$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. должно ли менятся колличество категорий и подкатегорий в процессе?

и вообще излогать надо от и до задачу нормально, а так получается ты сама решила задачу в действительности не понимая, как правильно такие задачи решаются, и в конце ещё и удивляешься, а почему всё тормозит.....

Спустя 34 минуты, 35 секунд (22.06.2010 - 14:02) zvezda_t написал(а):
rolleyes.gif
Цитата
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 применять?

Спустя 3 минуты, 39 секунд (22.06.2010 - 14:47) qpayct написал(а):
SlavaFr
nested sets идеально подходит под такие варианты и не надо ля-ля, разберись сначала что ей надо и что такое nseted sets, а впадать в панику это всегда пожалуйста.

zvezda_t
это не сложно, когда разберёшься. я в тебя верю.

сколько таблиц, каких и какое именно построение?

Спустя 9 минут, 1 секунда (22.06.2010 - 14:56) SlavaFr написал(а):
я просто хочу услышать хотябы одно приемущество nested sets для решение данной задачи.

о.т.: за панику, извеняюсь, откоректировал мое замечание.

Спустя 41 минута, 9 секунд (22.06.2010 - 15:37) qpayct написал(а):
в таком случае лады wink.gif

преимуществ в данной ситуации несколько:
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 да, это все преимущества, но я хотел узнать о преимуществе для решения данной задачи.


Спустя 45 минут, 7 секунд (22.06.2010 - 16:47) qpayct написал(а):
1. нет. и спорить по этому поводу я больше не буду.

2.
Цитата
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. можно использовать кеширование данных пусть даже незначительно (несколько минут при большой посещаемости может помочь)

Спустя 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
подозреваю, что это из-за посылки данных постом, хотя это всё поиски чёрной кошки в тёмной комнате....... кода нет. ТС нет. и я тоже ухожу tongue.gif

SlavaFr
не умничай. перечитывай эту тему пока не наступит прозрение

Спустя 1 минута, 59 секунд (22.06.2010 - 17:17) Gabriel написал(а):
qpayct
ну да а если крякнуть js/ajax и прочий бред грузить будет точно быстрее но не в этом дело.

Спустя 28 минут, 21 секунда (22.06.2010 - 17:46) inpost написал(а):
Отдельным файлом формируешь перечни селектов в переменной.
Страница формируется примерно раз в час, или раз в сутки, информацию о селектах берется из этой страницы инклюдом.
Таким образом обращений к базе данных можно свести к нулю.

ДОПОЛНЕНИЕ: уменьшить загрузку страницы можно ещё оптимизацией, как уже сказал Габриел, полный перечень оптимизаций можно узнать у плагина для Мозиллы: 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 написал(а):
Цитата
сколько таблиц, каких и какое именно построение?


селекты мои строятся как здесь,
скрипт для создания динамический селектов разместил Gabriel здесь

структура таблиц - в присоединённом файле:


_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.