2010-12-14 7 views
2

У меня есть веб-сайт, который в основном позволяет клиентам создавать тележку с элементом, который можно настроить. Пользователь выберет элемент, и им будет предложено выбрать первый вариант, который им нужен, они будут отправлены на второй шаг, где они выбирают свой второй вариант и т. Д.Каков правильный способ обработки нескольких автоматических переадресаций?

Количество шагов и количество опций являются переменными, так как они определяются клиентом. Обычно элемент имеет только 2-3 шага с 5-10 вариантами. Однако, чтобы сделать его быстрее для клиента, если для данного шага имеется только один параметр, он будет автоматически выбран, и пользователь будет отправлен на следующий шаг.

Клиент решил настроить элемент с шагом более 10 шагов с помощью только одного варианта для каждого шага. Это приводит к тому, что весь процесс автоматически выбирает все. FireFox не нравится, так как он дает ошибку

Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что никогда не будет полной.

(Я не проверял IE или Chrome, хотя он, вероятно, дает аналогичные ошибки).

Каков наилучший способ исправить это?

Сейчас этот процесс в основном

  1. Пользователь выбирает предмета
  2. Пользователь выбирает вариант, если есть больше чем одна опция доступна. В противном случае веб-сайт сам делает шаг 3.
  3. POST, чтобы добавить параметр в корзину
  4. Перенаправить на Page.aspx?step=#
  5. Повторите шаг 2-4 столько раз, сколько необходимо

Есть ли какие-либо изменения, я могу сделать, чтобы код или страницы, так что FireFox не думает, что я в бесконечном цикле?

ответ

4

Я удивлен, что вы получаете бесконечную ошибку переадресации, если # каждый раз отличается, но в любом случае это не похоже на лучшую архитектуру. В принципе, если код решит, что шаг можно сделать автоматически, он мгновенно перенаправляется на ту же страницу с новым номером шага?

Почему бы вам просто не сделать свой код без переадресации, при необходимости увеличить номер страницы в код сервера и показать им правильный шаг, без необходимости перенаправления?

Что бы ни происходило, когда вы отправляли POST на каждом шагу, я бы подумал, что вы можете так же легко выполнить код, не имея необходимости делать новое сообщение.

1

Я предполагаю, что-то, как это будет работать:

  1. Read Шаг из строки запроса в локальные переменную
  2. загрузки данных из базы данных, проходящих в локальном переменном шаге
  3. Если данные содержат только один вариант затем:
    (3.1) вариант Магазин
    (3,2) увеличения локального шага переменной
    (3,3) Гото 2

  4. страница загрузки с данными, начиная с шага 2


Как обработки ваш код кто-то пропуская варианты и введите page.aspx? step = 10 в адресную строку, когда они находятся на странице .aspx? step = 1?

+0

Сайт будет проверять, чтобы, если они находятся на шаге 10, шаги с 1 по 9 отмечены как завершенные. Если нет, они отправляются обратно на первый незавершенный шаг. – Brandon

+0

В этом случае кажется, что включение страницы # в url просто усложняет вопросы, если копия сервера является мастером в любом случае. – Greg

Смежные вопросы