За сегодняшнее Что, что яLзаработал Т сегодня. Вернемся к разработке программного обеспечения.

Я расскажу вам об Live Query для Parse Server с использованием JavaScript.

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

Таким образом, приложение в реальной жизни, разрабатывающее приложения живых запросов, может быть бесконечным! Например, если вам нужны обновления в реальном времени в таблицах, вы можете использовать оперативные запросы. Однако в моем случае я использовал его для API Карт Google, прослушивая его изменения.

Позвольте мне сначала описать проблему, чтобы вы поняли, что мы собираемся делать. Проблема в том, что у меня есть карта на определенной странице, эта карта возвращает разные цвета маркеров, а маркеры имеют подробную информацию о них, когда я щелкнул по одному из них, теперь ключевой частью является timeIn, который представляет собой формат даты, теперь в структуре нашей схемы есть столбец с именем timeOut, для которого по умолчанию задано значение undefined. Когда приходит запрос на изменение timeOut на какую-то дату, неопределенное значение будет преобразовано в дату. Мне нужно отслеживать, является ли поле timeOut неопределенным или нет, если оно не определено, маркер все равно будет там, если внутри него уже есть данные, маркер должен исчезнуть!

Вот текущее состояние Google Maps API: когда вы нажимаете на маркер, отображаются сведения об этом конкретном пользователе. Важной частью является время, это поле timeIn в схеме. Для живого запроса вот как это выглядит.

Чтобы объяснить это,

liveQuery — это просто экземпляр Parse.Query, который будет использоваться для запроса.
subscription — переменная, которая будет использоваться для подписки с помощью Live Query.

Прежде чем углубляться в то, как работает этот код, на самом деле есть основная концепция, которую вы должны понять и оценить. И это называется pub/sub.

pub — значит опубликовать.
sub — значит подписаться.

Точно так же, как мы распространяем информацию. Вы публикуете что-то на Facebook, кто-то увидит эту информацию, и это уже будет подписаться, потому что они получили информацию от вас, опубликовавшего ее. Теперь, когда вы понимаете, что такое pub/sub, давайте продолжим процесс запроса в реальном времени.

Переменная subscription объявлена ​​так, что она будет подписываться на все, что будет иметь переменная liveQuery, указывающая на класс FinalGuest. Таким образом, все, что будет иметь liveQuery, будет указывать на подписку. Все просто.

subscription.on(‘update’, (object) =› {
//код здесь
});

Код выше просто означает, что он будет подписываться на обновлениягде? Класс FinalGuest. Поэтому всякий раз, когда в классе FinalGuest происходит обновление чего-либо, он получает результат, который является объектом . Когда я получил объект, я создал копию текущих состояний маркеров и выполнил цикл for, чтобы проверить, чей это маркер, по его objectId, если он совпал, то вы вырезаете его в массив и обновляете текущее состояние с скопированным состоянием. Таким образом, вы уже получили обновление! Легко, верно? Сейчас я закончу говорить и просто покажу вам, насколько это круто.

Сценарий останется прежним, внимательно следите за красным маркером. Как видите, на сервере базы данных столбец timeOut все еще не определен.

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

И да, он исчезает, чтобы показать вам больше результатов, я поместил console.log после того, как он установил скопированное состояние в текущее состояние, и вот оно.

На сегодня все, ребята! Увидимся завтра!