Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (8)

Лучшие ответы пользователя

Все ответы (9)
  • Что проверить, если перестал подключаться 1.1.1.1 от Cloudflare?

    @IgorAlentyev
    Роскомнадзор собирался блокировать cloudflare dns и google dns, скорее всего дело в этом.
    Ответ написан
    1 комментарий
  • Стоит ли изучать jQuery в 2019?

    @IgorAlentyev
    Привет! Jquery очень прост, его не нужно изучать особо. Посмотри документацию, домен не помню точно, обычно гуглю jquery page2page и будет сайт с таким названием. Там годная, простая и понятная документациями. Сам по нему учил и сейчас временами захожу.

    Если хотите именно изучить фронтенд фрейморк, посмотри в сторону vue.js. Это очень грубо говоря, новый jquery. Хорошо развивается и сейчас очень популярен.
    Есть еще react и angular, но реакт мне лично не зашел, а ангуляр новичку я бы не стал рекомендовать.

    Ну и само собой изучай сам js, он на многое способен и может использоваться для кучи всего, например для backend части. Если интересно, посмотри в сторону express.js - это фреймворк для бэкэнда.

    Вообще есть такой стэк - mevn. Погугли. Если бы я сейчас пришел в мир разработки, то выбрал бы именно этот стэк для начала.
    Ответ написан
    Комментировать
  • Как лучше всего передавать и хранить, просмотры и лайки на PHP?

    @IgorAlentyev
    Добрый день! Попробую предложить решение, как бы я сделал.
    Во первых, я бы не писал на чистом PHP, а использовал бы фреймворк, тот же Laravel, там есть функционал который вам нужен, и он поможет грамотно организовать всё и удобно работать с кешем. Но если хочется без фреймворков и у вас не планируется прям highload, то я бы делал как то так:
    Для хранения лайков вам в принципе написали вариант, для новых постов храните в редисе/мемкеше, да где угодно, можно и прямо в базе, если у вас не будет огромной посещаемости, то и проблем не будет.

    Что касается организации таблиц - как вариант, вот у вас есть пользователь, у него есть ID. Создаете таблицу, в неё user_id, liked_post_id. Это, если вам например нужно будет отдельно выводить лайкнутые посты конкретного юзера, ну и это поможет, если вам нужно отображать в ленте уже лайкнутые посты. (Главное не говнокодить, то есть не нужно на каждый пост в цикле делать отдельный запрос в БД. Получите сначала все лайкнутые посты пользователеля в массив, и при выводе в цикле постов, через array_search просто ищите нужный пост)

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

    По поводу просмотров - логика примерно такая же, если вам нужно считать просмотры только с "детальной страницы поста", то при заходе на страницу поста увеличиваете значение views_count в БД у этого поста.
    Если вам нужно отлавливать просмотры в списке, то есть JS библиотека, которая это умеет, скорее всего даже не одна, к сожалению я не помню как называется, но можно посерчить так - "js div в области видимости". Соответственно когда сработает событие JS библиотеки, делаете ajax на пхп файл, в который передаете ID поста, ну а дальше всё как выше написал.

    Что касается производительности - не слушайте новичков, если у вас НЕ лютый highload, то всё у вас будет летать. MySql - очень быстрая БД, и несколько легких запросов не будут проблемой.

    В ленте выводите не все посты сразу, используйте LIMIT offset, и выводите через постраничку или бесконечный скролл, что в принципе одно и то же, только в случае с бесконечным скроллом, вы ajax-ом подгружаете данные и вставляете в DOM.

    Если у вас большое количество данных и будут тормоза, то есть куча статей с решениями таких проблем.
    Одна из них - https://habr.com/ru/post/217521/

    В любом случае, удачи и успеха!
    Ответ написан
    Комментировать