Как эффективно реализовать подобную функцию в веб-приложении MEAN? - PullRequest
0 голосов
/ 11 июля 2019

Я создаю веб-приложение, в котором пользователю могут понравиться некоторые варианты выбора, отображаемые на странице.

Я хочу построить подобную или непохожую систему наиболее эффективным способом.Каждое нажатие кнопки «Мне нравится» должно отправлять http-запрос на сервер node.js для изменения пользовательских данных в Mongo?

Я спрашиваю, так как у меня будет скрипт Python в качестве системы рекомендаций, которая прослушивает все изменения, происходящие в MongoDB.

Ответы [ 3 ]

1 голос
/ 11 июля 2019

Да, каждый клик должен отправляться на сервер с помощью обратного вызова.Кто-то может сказать, что:

вы также можете выполнить настройку с помощью этой функции, например, добавить все идентификаторы сообщений, которые понравились конкретному пользователю, в массив и отправить его обратно в конце сеанса или послеконкретное количество времени.

Но подумайте, что если этот массив каким-то образом потеряет данные по ошибке?Или сессия не удалась по каким-то причинам?Кроме того, как другие пользователи увидят, какой пост понравился или нет?

Обратите внимание, по этим причинам мы всегда отправляем ответ каждый раз.Тем не менее, JQuery и другие фреймворки помогут быстро это сделать.

0 голосов
/ 11 июля 2019

Нужно ли при каждом нажатии кнопки «Нравится» отправлять http-запрос на сервер node.js для изменения пользовательских данных в Mongo?

Вам нужно каким-то образом получить данные на сервер, да. HTTP-запрос, как правило, является хорошим выбором, и он не должен быть таким тяжелым, как когда-то.

Во-первых, на вашем сервере должна быть включена поддержка HTTP, когда основное TCP-соединение остается открытым в течение некоторого времени после завершения запроса. Таким образом, последующие запросы могут быть сделаны на том же соединении.

Кроме того, вы должны убедиться, что у вас включен HTTP / 2, что является более эффективным протоколом из-за его двоичного характера. Что еще более важно, такие заголовки, как Cookie, а что нет, не отправляются снова и снова.

Следуя этим рекомендациям, вы обнаружите, что ваш запрос / ответ находится всего в нескольких байтах от существующего соединения. И вам не нужно ничего менять в своем коде, чтобы сделать это!

0 голосов
/ 11 июля 2019

Если вы ожидаете тысячи пользователей, то использование традиционного API RESTful здесь может оказаться не лучшим вариантом. Я бы порекомендовал заглянуть в веб-розетки для вашего варианта использования.

...