javascrip: подскажите как оптимизировать
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



javascrip: подскажите как оптимизировать Expand / Collapse
Автор
Сообщение
18.09.2001 23:40
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 02.01.2002 1:38
Сообщ.: 14, Visits: 155
ситуация такова(начну издалека): у меня есть список товаров(вернее, меню ) каждому товару соответствует айди в базе и т.д. Я делаю выборку и выкидываю данные браузеру. Далее мне нужно произвести подсчет того, сколько и какого товара заказал клиент, причем, с выводом итоговой суммы в инпут в он-лайн(т.е. значание этого инпута изменяеться как только клиент выбрал новый товар и т.дю без перезагрузки страницы).Для этого я инициализирую массив длинной в кол-во выводимых товаров и каждому эл-ту массива соответсвует та цена, которая будет заплачена за товар.(получаеться, что-то типа массив[айди_товара]=цена_заказаного_товара_с_этим айди. для простоты будем считать, что айди товара пробегает все значения от 0 до кол-ва записей.... т.е. массив используеться на 100% и нет избыточности)... посе каждого изменения по событию onChange я вызываю ф-ю для вненсения соответствующих изменений в массив и й-ю пересчета общей суммы(т.е. она суммирует все эл-ты массива и присваивает этот результат инпуту)..... теперь самое интересное... на некоторых вполне нормальных компах(пень 3 500) эта страница попросут виснет и забирает всю доступную память... соответственно, нужно ее как-то оптимизировать.. а вот как - ума не приложу? Есть ли примеры, где можно обойтись без этого массива?

(вот мои мучения: http://pizza.od.ua/beta)
Сообщ. #724627
19.09.2001 12:19
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 01.05.2003 9:57
Сообщ.: 218, Visits: 2 399
>по событию onChange я вызываю ф-ю для вненсения соответствующих >изменений в массив и й-ю пересчета общей суммы(т.е. она суммирует >все эл-ты массива и присваивает этот результат инпуту

Общую сумму можно пересчитать проще, не сканируя каждый раз массив:

Общая сумма = Общая сумма + цена выбранного товара * (новое количество выбранного товара - старое количество выбранного товара)
Сообщ. #724655
22.09.2001 11:49
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 02.01.2002 1:38
Сообщ.: 14, Visits: 155
да, но проблема в том, что кол-во выбраного товара у меня в select, а вот как поймать предыдущее значение кол-ва товара я ума не приложу.
Сообщ. #725135
25.09.2001 14:52
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 01.05.2003 9:57
Сообщ.: 218, Visits: 2 399
Можно по onFocus для select-а сохранять его значение в переменной (одной и той же для всех select-ов), а по onChange - считывать это значение, оно и будет "предыдущим".
Сообщ. #725465
25.09.2001 16:00


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 02.05.2006 23:09
Сообщ.: 1 293, Visits: 14 276
mozhno v array
dobavit pole "amount_old" dopolnitelno k sushestvuushim
i rabotat s nim dinamicheski
- eto budet staroe kolichestvo

novoe - "amount_new"


------------------------------------
Anatoly Lubarsky
Сообщ. #725481
25.09.2001 16:04


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 02.05.2006 23:09
Сообщ.: 1 293, Visits: 14 276
vot podumal:
mozhno dazhe dobavit polya:

sum_old, sum_new,

i togda dlya izmenenia obshei summy voobshe ne nado
probegat ves massiv, a izmenyat SUM_TOTAL:

SUM_TOTAL=SUM_NEW-SUM_OLD izmennennogo ilementa


------------------------------------
Anatoly Lubarsky
Сообщ. #725483
25.09.2001 16:06


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 02.05.2006 23:09
Сообщ.: 1 293, Visits: 14 276
v predydushem soobshenii konechno:

SUM_TOTAL=SUM_TOTAL+(SUM_NEW-SUM_OLD) izmennenogo elementa

udachi..


------------------------------------
Anatoly Lubarsky
Сообщ. #725485
26.09.2001 12:04
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 01.05.2003 9:57
Сообщ.: 218, Visits: 2 399
To luber:
хранить sum_new и sum_old в массиве необязательно. Достаточно одной sum_old для всех select-ов. А sum_new - это просто установленное пользователем значение select-а. См. мои предыдущие сообщения.

To filfob:
Предлагаю вообще убрать из программы этот массив. Вся необходимая информация лежит в select-ах и переменных sum_old и sum_total.
Сообщ. #725615
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl