noder_ss
@noder_ss
Линуксоид-энтузиаст и SQL разработчик

Можно ли пользоваться Ajax с помощью SQL?

Можно ли использовать Ajax с SQL, а не с PHP?(Вообще не знаю, но читал, типо PHP обрабатывает данные аякса, а SQL так может?)
  • Вопрос задан
  • 134 просмотра
Решения вопроса 5
@alexalexes
В зависимости от требования к скорости доставки изменений для всех пользователей, то эту задачу можно решить разными способами.
1. Низкие требования к скорости оповещения - "когда пользователь решит сам обновить или перейти на другую страницу, тогда и выведем новое состояние (новый статус, новое сообщение)".
Классическая форма взаимодействия браузера с сервером.
Один пользователь набирает сообщение в обычной форме (без ajax). Отправляют его на сервер. Сервер сохраняет его в любой форме. Когда другие пользователи запрашивают у сервера страницу с сообщением или статусом, то они получают новое состояние, если сами сделали какое-то действие, связанное с переходом на другую страницу.
Так работают старые веб почтовики и форумы 2000-х годов.
2. Средние требования к скорости оповещения - "пользователь не должен предпринимать никаких действий, чтобы он получил новое состояние, но получать состояние можно раз в несколько минут и более".
Один пользователь набирает сообщение, отправляет на сервер. А другие пользователи запрашивают новое состояние страницы у сервера по технологии ajax. Проблема в том, что инициатором получения изменений от первого пользователя являются клиентская часть приложения пользователей, которые ждут изменений на сервере, а не приложение сервера. Поэтому когда первый пользователь отправит сообщение, то другие пользователи получат его не сразу, а когда наступит следующий период опроса сервера.
Это требование подходит для интернет магазинов, чтобы отслеживать статус заказа, новые почтовики.
3. Высокие требования к скорости оповещения - "пользователь должен незамедлительно получать изменения от сервера, как только другой пользователь сделает действие".
Вот тут уже на стороне ожидающих пользователей работает технология websocket. Клиентская часть этих пользователей создает соединение с сервером и ждет от него отклика, когда другой пользователь напишет сообщение. Постоянные опросы состояния, как в случае 2 таким пользователям проводить не нужно.
Но для websocket есть ограничения, что не каждый веб сервер для него годится. Например, с PHP его сложнее подружить, чем с NodeJS. Вся проблема в том, что PHP не приспособлен для обработки множества запросов на одно соединение, в NodeJS и других средах, где такая концепция заложена изначально, проблем не будет с реализацией.
С такими требованиями работают современные чаты в любых мессенджерах.
Ответ написан
Комментировать
Fragster
@Fragster
помогло? отметь решением!
Если я все правильно понял, то нужна СУБД с работой через HTTP, например firebase realtime database или mongodb
Ответ написан
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
Нет, нельзя.
Вопрос не имеет смысла.
SQL - это язык запросов к базе данных. База данных находится на сервере базы данных.
РНР - это язык для формирования динамических ответов на НТТР сервере. РНР может обращаться к серверу базы данных, используя язык SQL.
РНР не "обрабатывает данные аякса". РНР обрабатывает НТТР запросы. Любые, сделанные как напрямую браузером, так и через AJAX. И особой разницы между ними не видит.
AJAX - это технология выполнения запросов к НТТР серверу из программы на Яваскрипте, исполняющейся в браузере. Браузер может обратиться только к НТТР серверу, но не к серверу баз данных.
Чтобы из Яваскрипта в браузере обратиться к базе данных, надо запросить НТТР сервер, который запустит программу на РНР (или другом серверном языке), которая обратится к серверу БД, получит результат, и вернёт его в ответ на НТТР запрос.
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Как всегда говорим о сферическом SQL... (ворчу)

Обычно так не делают. Просто БД предоставляет слишком много доступа для ползователя. Тут надо решать вопросы и SQL инжекций и инфобезопасности. А то так любой дурак сделает 'drop database' просто получив в руки браузер.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы