• Как называется этот эффект в поле ввода?

    hahenty
    @hahenty
    ('•')
    Ответ написан
    Комментировать
  • Можно ли как то сократить запись однотипных импортов в js?

    miraage
    @miraage
    Старый прогер
    Создайте в папке ProdCards index.js файл, которые будет экспортить все возможные prod1-8.
    Затем уже импортите либо
    import * as prodCards from '../components/ProdCards'
    или же
    import { prod2, prod7 } from '../components/ProdCards'
    Ответ написан
    Комментировать
  • Единый микросервис для сбора/хранения всех логов, правильно ли это?

    @vitaly_il1
    DevOps Consulting
    Как уже намекнули в комментах, лучше третий вариант - писать в stdout.
    А дальше с помощью https://fluentbit.io/ (или другого) посылать логи куда хотим - Elastic (локальный или облачный), AWS Cloudwatch Logs, и т.п.
    Ответ написан
    Комментировать
  • Единый микросервис для сбора/хранения всех логов, правильно ли это?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    1 вариант: Все логи отправляются в один микросервис.

    Все логи отправляются в лог аггрегатор, а не микросервис. Писать для себя микросервис по работе с логами - лишняя работа, так как сейчас есть готовые инструменты.

    А вот как это делать - уже разные варианты есть.

    Ваше приложение может писать в stdout, и если вы пользуетесь чем-то вроде kubernetes/openshift, то это удобно ловить централизировано сразу на кластере, тегировать по имени приложения/пода и отправлять дальше.

    Ваше приложение может напрямую писать логи в какой-нибудь logstash, который все собирает парсит и отправляет дальше

    Ваше приложение может писать логи в брокер сообщений, из которого уже логи попадают в аггрегатор. Полезно если бывают очень большие пики логов и есть вероятность, что аггрегатор может в какой-то момент не справитьcя и часть потеряется - тогда какой-нить kafka/rabbitmq как раз будет промежуточным буффером, который гарантировано примет все логи, сколько бы их ни было и передаст их дальше со скоростью, которая комфортна для вашего лог аггрегатора (масштабировать брокер проще, чем аггрегатор)

    Ваше приложение может писать логи прямо в базу данных. Даже в sql базу, или прямо в elastic.

    Ваше приложение может писать просто в лог файлы, а потом эти лог файлы собираются, парсятся, отправляются в лог аггрегатор.

    В общем на любой вкус и цвет. Определитесь с объемом логов, с пиковыми моментами, с тем что вы хотите делать и сделайте общий стандарт для всех ваших компонентов.

    2 вариант: Каждый микросервис пишет собственные логи в своем хранилище.

    Ну можно и так.
    Ответ написан
    2 комментария
  • В чем суть такой записи в reset.css?

    nowm
    @nowm
    Это специфичное для blockquote определение, которое Eric Meyer (автор reset.css) позаимствовал у Paul Chaplin. Первая строка content: "" делает так, чтобы у blockquote исчезли кавычки — на случай, если вторая строка content: none не поддерживается браузером, потому что первая строка — это CSS 2, а вторая — это CSS 2.1. В одну строку их записать нельзя, потому что по стандарту для свойства «content» нельзя комбинировать ключевые слова «normal» и «none» с другими значениями.

    Вообще, когда встречается перечисление одного и того же свойства с разными значениями, это делается для того, чтобы обеспечить совместимость с разными браузерами. То есть, если, например, браузер не поддерживает «content: none», он применит «content: ""», а другую запись проигнорирует.

    Обычно дублирующие записи располагаются в определённом порядке. Первой записью идёт самый плохой вариант, который должен сработать везде. Затем идёт вариант, который более полно описывает вашу цель. Пример:

    .some-class {
        background: #e66465;
        background: linear-gradient(#e66465, #9198e5);
    }


    В этом коде, если браузер поддерживает градиентный фон, он сначала прочитает, что нужно использовать цвет «#e66465», а потом это перезапишется записью «linear-gradient», и итоговое значение будет «linear-gradient(#e66465, #9198e5);». Если же браузер не поддерживает градиент, он сначала прочитает, что нужно использовать «#e66465», а потом увидит неподдерживаемое определение «linear-gradient», проигнорирует его, и итоговое значение будет «#e66465».
    Ответ написан
    Комментировать
  • Что имел в виду автор учебника, устанавливая свойство overflow?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Что имелось в виду?

    Это и имелось в виду. То, что написано в комментарии.

    Родитель ничего не знает о высоте дочерних флоатов.
    Если все дети флоаты, то высота родителя будет нулевой.
    Чтобы она перестала быть нулевой и стала вести себя как высота по контенту, использовали overflow.

    Если вы зададите родителю фон или даже лучше бордер и проведете эксперимент, то всё сами увидите.
    Ответ написан
    4 комментария
  • Как наследовать слоты в Vue?

    Djaler
    @Djaler
    Сеньор-помидор
    <template>
        <v-data-table>
            <template v-for="(_, slot) of $slots" :slot="slot">
                <slot :name="slot"/>
            </template>
    
            <template v-for="(_, slot) of $scopedSlots" #[slot]="scope">
                <slot :name="slot" v-bind="scope"/>
            </template>
        </v-data-table>
    </template>
    Ответ написан
    1 комментарий
  • Как реализуется SPA-приложение, на примере Vue.js?

    @Barmunk
    На laravel есть реализация SPA приложения, можете его изучить, как раз собрано все, что вас интересует

    https://github.com/codecasts/spa-starter-kit

    Client side
    Vue.js 2.0 project create with vue-cli + webpack template
    Centralized state management with Vuex
    Route management with Vue-router
    Authentication with JWT
    Keep user signed in using local stored info
    HTTP requests with Axios
    ESLint with AirBNB preset
    Pagination integrated with Laravel's LengthAwarePaginator
    Alerts and Confirmation Alerts provided by SweetAlert

    Server side
    Laravel 5.3
    Authentication with JWT
    Fractal
    Web service RESTful with Dingo (planned)
    Ответ написан
    2 комментария
  • Как реализуется SPA-приложение, на примере Vue.js?

    @game802 Автор вопроса
    Дали ответ на другом ресурсе, может быть кому пригодится:
    1. Да, на нем пишут как простые штуки таки и полноценные SPA, навигация работает без презагрузки.
    2. Nuxt js это сборка (VueJS + VueRouter и т.д.) которая делает Рендеринг SPA приложения на стороне сервера. Зачем он это делает? - все очень просто. SPA приложения неиндексируются поисковыми ботами из-за своей асинхронности и JS, NuxtJS решает эту проблему, делая рендер на стороне сервера (выполняет все асинхронные действия например запрос к бекенду по REST, и возвращает отрендеренный HTML)
    3. SSR (серверный рендеринг), генерирует ту страницу которую запросил пользователь например: example.ru/item/12, в данном случае SSR спросит у бэкенда Item с id = 12 , и затем сгенерирует и вернет клиенту HTML. В конце HTML документа всегда подключен файл вашего SPA приложения, который исполнится и включит реактивность. Т.е. Получается что первый запрос к сереверу это отрендеренный SSR, а все остальные переходы по приложению это уже SPA
    4. Да, просто ставите NuxtJS и наслаждаетесь разработкой.
    5. Взаимодействует через REST, делая GET|POST запросы на ваш бекенд. Либо через socket. Используйте laravel 5 как бэкенд
    6. Vuex это централизованное хранилище данных. предназначено для того чтобы жёстко отделять данные от view. Все данные хранятся в едином экземпляре, и если происходит set (мутация) для какого-либо значения в хранилище, то во всех местах где был get этого значения, произойдёт обновление.
    Этим обеспечивается реактивность, сайт перестаёт быть просто страницей. Он если хотите "обретает душу"

    Иногда в простых админках я создаю всего один основной action который делает т.н. getAllState, т.е. Берет все состояние относительно пользователя у бекенда. Например берет объекты user, comments, posts. Billing, messages и пишет это в хранилище.
    И когда мне надо обновить данные, я опять вызываю getAllState который обновит хранилище, в это время автоматически вызовется цепочка геттеров/сеттеров и вот тут сработает магия vue. Он сравнит текущий отрендеренный DOM с Новым Virtual DOM. И если где то будут различия он перерендерит этот кусок.

    Очень сложно объяснять это. Надеюсь я смог донести хоть частичку всей концепции.
    Думаю про доки говорить не стоит. Ведь все что сказано выше там написано в более подробной форме)

    Автор: Евгений Рюмин
    Ответ написан
    4 комментария
  • AJAX как получить ответ без html страницы?

    @webseodesigner Автор вопроса
    Сам спросил, сам отвечу.
    В файле с хтмл формы вначале пхп обработчик с exit!
    if (isset($_POST['name'])) {
    	echo 'Ваше объявление добавлено и будет опубликовано после проверки.';
    	exit();
    }
    html.......
    Ответ написан
    Комментировать
  • Фоновая картинка съезжает, что делать?

    natojezlo
    @natojezlo
    background: #052f30 url("/src/logo/header-bg.jpg") top center no-repeat /cover;
    Ответ написан
    2 комментария
  • Как сверстать так блоки на flexbox?

    Chefranov
    @Chefranov
    Новичок
    В голове образно разбивайте на строки и колонки и верстайте
    5d3818bd1aeb9587510015.png
    Ответ написан
    3 комментария
  • Как отсортировать без sort?

    irishmann
    @irishmann
    Научись пользоваться дебаггером
    Берем любой алгоритм и реализуем
    Ответ написан
    Комментировать
  • Правильно держать соединение к БД открытым или открывать при каждом запросе в Node.js?

    makarychev13
    @makarychev13
    .NET-developer
    Единожды создаётё пул (при старте приложения). При каждом запросе дёргаете из пула подключение
    Ответ написан
    1 комментарий