Корзина для заказа

Корзина для заказа служит для добавления в неё заказываемых пользователем товаров. Данная информация может храниться на стороне сервера или клиента. В первом случае используются текстовые файлы или базы данных, во втором - массивы JavaScript и cookies. Реализация корзины на стороне сервера имеет один существенный недостаток - низкая скорость доступа. Даже относительно небольшая задержка при загрузке с сервера заказанных позиций может негативно повлиять на восприятие пользователей. Кроме того, происходит увеличение нагрузки на сервер, что может при большом количестве запросов ощутимо снизить производительность работы всего интернет-магазина. Механизм cookies имеет в этом отношении некоторые преимущества перед серверными решениями, однако придётся постоянно производить дополнительную обработку cookies-строк для вывода информации в табличную форму. Данную и многие другие проблемы можно решить с помощью массива объектов на JavaScript, однако, в этом случае, придётся использовать фреймы, что многими разработчиками не приветствуется, а зря, поскольку при грамотном использовании фреймов можно создать интернет-магазин на порядок превосходящий традиционные решения (подробнее).
В отличие от каталога, заказ - достаточно простая структура данных, которая обычно включает в себя следующие поля: название товара, количество, цена и сумма. Редактирование заказа заключается в изменении количества заказываемого товара или его удаления из заказа. Предположим, что корзина реализована на сервере. Тогда последовательность действий будет такой:
  1. Изменить количество товара в поле "Количество" и щелкнуть по кнопке "Обновить".
  2. Сохранить изменения на сервере.
  3. Загрузить с сервера обновленный заказ (загрузить всю выборку данных).
Для выполнения такой простой операции необходимо осуществить два обращения к серверу и повторно загрузить весь заказ, скорость отображения которого будет уменьшаться пропорционально количеству позиций в заказе. В случае использования массива JavaScript последовательность действий будет следующей:
  1. Изменить количество товара в поле "Количество" и нажать клавишу Enter.
  2. Произвести изменения в массиве объектов.
  3. Вывести новое значение количества в соответствующее поле записи.
В этом случае операция изменения количества происходит без обращения к серверу, что существенно увеличивает скорость её выполнения, особенно при его сильной загрузке. Более того, происходит обновление только поля количества записи, без повторной загрузки всего заказа. Благодаря этому редактирование заказа осуществляется практически в реальном масштабе времени.
Оглавление
Copyright © 2016