Марина Мухина: по сравнению с той засранностью, которая имеет место на свежекупленных ноутах на винде - безусловно. Но это тормозит не сама винда, и при желании и в линуксах можно напихать всякой блажи в автозагрузку. Правда, винде кое-что из этого будет реально необходимо, а линуксу - нет. Но именно интерфейс у винды несколько пошустрее за счет менее безопасной, но более прямолинейной архитектуры.
Если главная претензия - "не особо быстро работает винда на нетбуке", то Линукс тут не сильно поможет. Интерфейс популярных пользовательских дистрибутивов Линукс обычно несколько неторопливее виндовского. Ему это прощают за большую адекватность...
Вообще-то, пока у вас клиент находится на одной и той же странице, хранение данных не нужно. Если он возвращается на сайт с сайта платежной системы - то в инпутах формы с атрибутом "автозаполнение" будут предыдущие значения.
Куки и прочее хранение нужно, если у вас клиент скачет по страницам сайта. А у вас, как вы утверждаете, все на клиенте.
Руслан Шадура: ага, я тоже когда-то думал, что пишу просто калькулятор заказа. Сейчас на то, что из него выросло, завязано все производство вплоть до учета материалов и расчета зарплат...
Вообще согласен, если это действительно будет CRM, описанное в вопросе - это так, мелочи. Потому что основная часть работы - это инструменты сотрудника в личном кабинете. А о них что-то ни слова.
Руслан Шадура: повторяю: ТЗ не будет. То, что вы с заказчиком сейчас считаете ТЗ, с тем, что ему действительно нужно, будет иметь довольно мало общего. Если, конечно, вы собираетесь делать рабочий инструмент, а не просто выполнить заказ от сих до сих.
Aves: да, я ошибался. Дешевле все писать в линейный массив и перебирать его тупо подряд, даже когда понадобится доступ по координатам. А если он требуется часто - кэшировать.
dom1n1k: Это уже забота JS-движка. Обычно их делают люди, которые уж такую-то ерунду способны предвидеть и сделать оптимально. Как правило, можно уверенно считать, что любой разреженный массив - это объект со всеми вытекающими плюсами и минусами.
По условиям имеем чрезвычайно разреженный массив, в котором при последовательном переборе проверок на undefined будет на несколько порядков больше, чем собственно элементов.
Собственно, индексы могут быть отрицательными, массив все равно станет объектом.
Что встроенные методы языка будут не хуже самодельных велосипедов с картами и хэшами - это, по-моему, настолько очевидно, что даже нет смысла обсуждать.
a16a: делая, как легче - никогда ничему новому не научишься.
Всякая мелкая фигня - отличное место для непринужденного знакомства с новыми технологиями. Потом, распробовав, их уже можно будет уверенно применять на чем-нибудь серьезном.
В данной задаче, например, можно было попробовать SVG...