Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
8 / 8 / 2
Регистрация: 17.03.2012
Сообщений: 534
Записей в блоге: 2

Актуальность данных - или два билета на самолет

20.07.2017, 21:01. Показов 951. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если данные получают с сервера и показывают их с помощью одного из js фреймворка, возникает ситуация что если изменили данные в одном окне (на этом или другом компьютере) в другом видны еще старые данные.

Так например можно заказать два билета на самолет и т.д.

Как правильно и легко решить эту проблемму?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.07.2017, 21:01
Ответы с готовыми решениями:

Актуальность данных - или два билета на самолет
Если данные получают с сервера и показывают их с помощью одного из js фреймворка, возникает ситуация что если изменили данные в одном окне...

Создать иерархии наследования: самолет, корабль-водный самолет или исправить ошибки
a) Создать иерархии наследования: самолет, корабль - водный самолет. b) Создать иерархии наследования: транспорт - самолет, корабль -...

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

10
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
20.07.2017, 21:13
Перед покупкой билета проверять, что его можно купить.
Вообще все что пришло от клиента надо проверять.

Добавлено через 5 минут
Актуальные данные можно получать по сокетам, ну или через ajax в цикле. Но это заметно тяжелее, стоит 10 раз подумать а надо ли это, или достаточно проверки на сервере.
1
8 / 8 / 2
Регистрация: 17.03.2012
Сообщений: 534
Записей в блоге: 2
20.07.2017, 22:20  [ТС]
Да, это понятно, на сервере конечно будет проверка и клиента можно переспросить, действительно ли он хочет второй билет. Если это так то клиент просто не поймет что от него хотят и зачем переспрашивают.

Вопрос в том, что клиент открыл одно окно, там у него вопрос выбора количества билетов, он открыает второе окно (не спрашивайте зачем ...) там выбирает два меса в самолете (или столики в кафе, ...), потом возвращается в первое окно, и видет что билетов в покупках нет и заказывает еще два билета. Вопрос как решить эту проблемму просто и красиво?

Добавлено через 5 минут
Но это заметно тяжелее, стоит 10 раз подумать а надо ли это ...

Вот я и думаю ... Вроде надо. но мне не нужен real time. Интересно как это делают другие, ведь проблемма возникает часто.
0
55 / 55 / 21
Регистрация: 01.03.2016
Сообщений: 594
21.07.2017, 07:17
abc_privet, при клике/выделении кол-ва/расположения идет аякс запрос на доступность, если не доступен, то обновляется вся таблица доступности и этому клиенту маленькая надпись. А если доступен, то делается резерв на н минут до оплаты.
0
8 / 8 / 2
Регистрация: 17.03.2012
Сообщений: 534
Записей в блоге: 2
21.07.2017, 15:31  [ТС]
Добавлено через 31 секунду
Есть идея (может не новая) каждому окну дать ID. На сервере API запоминать последний ID и если запрос пришел не с последнего ID обновить его на сервере на последний ID окна и вернуть через API команду обновить все данные в новом окне, выдать сообщение пользователю и если он захочет отправить запрос снова.
как насчет такого решения?
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
21.07.2017, 15:51
Цитата Сообщение от abc_privet Посмотреть сообщение
Есть идея (может не новая) каждому окну дать ID. На сервере API запоминать последний ID и если запрос пришел не с последнего ID обновить его на сервере на последний ID окна и вернуть через API команду обновить все данные в новом окне, выдать сообщение пользователю и если он захочет отправить запрос снова.
как насчет такого решения?
Бред.

Я же говорю, если пользователь пытается купить уже занятый билет, просто возвращаете ему ошибку. Тут же можно и данные обновить.
1
8 / 8 / 2
Регистрация: 17.03.2012
Сообщений: 534
Записей в блоге: 2
21.07.2017, 17:27  [ТС]
Почему бред, ведь идея та же: "просто возвращаете ему ошибку. Тут же можно и данные обновить." Ведь моя идея такая же.
0
8 / 8 / 2
Регистрация: 17.03.2012
Сообщений: 534
Записей в блоге: 2
23.07.2017, 15:19  [ТС]
Больше никто не сталкивался с такой задачей?
0
55 / 55 / 21
Регистрация: 01.03.2016
Сообщений: 594
24.07.2017, 12:00
Цитата Сообщение от abc_privet Посмотреть сообщение
Почему бред, ведь идея та же: "просто возвращаете ему ошибку. Тут же можно и данные обновить." Ведь моя идея такая же.
Слишком затратно. Велосипед с 4 педалями.
0
8 / 8 / 2
Регистрация: 17.03.2012
Сообщений: 534
Записей в блоге: 2
24.07.2017, 12:15  [ТС]
Цитата Сообщение от 53ifbb Посмотреть сообщение
Слишком затратно. Велосипед с 4 педалями.
1) Что затратно? Почему?
2) Как сделать не затратно?
3) Что вы называете двумя лишними педалями?
0
22 / 22 / 8
Регистрация: 21.07.2017
Сообщений: 74
25.07.2017, 05:20
abc_privet, при клике/выделении кол-ва/расположения идет аякс запрос на доступность, если не доступен, то обновляется вся таблица доступности и этому клиенту маленькая надпись. А если доступен, то делается резерв на н минут до оплаты.
В принципе согласен с идееё, если клиент начинает цепочку ведущую к покупке билета - бронировать билет на определенное время, и не выводить его в общий скоп выборки. Если отказался - вернуть в общий скоп.

Идея берет корни из блокировки файла как бы.... Недоступен пока кто-то с ним работает..

Можно не исключать из общего скопа, а помечать билет как "забронированный". И вовремя отслеживать момент когда первый клиент от него отказывается, иначе при большом потоке клиентов все билеты быстро улетят в блок)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.07.2017, 05:20
Помогаю со студенческими работами здесь

Могут ли два автобусных билета подряд быть удачными?
Назовем шестизначный автобусный билет удачным, если сумма его цифр делится на 7. Могут ли два билета подряд быть удачными?

Подскажите актуальность или в чём ошибка
Что я не правильно делаю? var url = 'createPerson.php'; var persname = document.getElementById("fioTextField"); ...

Самолёт или автомобиль?
Каждый из нас хоть раз в жизни летал на самолётах на отдых или по делам и наверно каждый для себя сделал какой-то вывод: "Я больше не...

Как доказать актуальность данных
Допустим, некий Василий П. доказал теорию T. В своем доказательстве, он использовал теорию Х, которая уже существовала на тот момент. Как...

Определить вероятность того, что хотя бы два билета имеют одинаковую стоимость.
2) Имеется 5 билетов стоимостью по 100 рублей, 3 билета - по 300 рублей и 2 билета - по 500 рублей. Случайным образом выбирается три...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK сделайте это, JDK, то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Перейдите по ссылке:. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru