• Прогресс выполнения php foreach в ajax запросе?

    @Fellowship
    Все варианты, предложенные здесь подразумевают установку дополнительного ПО или использования иных технологий.

    Но на самом деле можно обойтись и без них.

    Смотрите.
    У Laravel есть замечательный механизм кронджобов. Используйте его в связке с mysql.

    Допустим у нас есть таблица с тасками для выполнения в фоне с 4мя полями
    id, task, progress, result
    (я уже правда не помню структуру таблицы laravel у кроновых тасков)

    И ajax запрос первый будет лишь командой на вставку новой задачи, который на js возвращает лишь id таска.

    Далее на клиенте реализовываем второй запрос - проверка статуса. Сам запрос просто запрашивает из базы значение поля progress из базы, а Js, например, рисует красивый прогресс. И пускай он с интервалом раз в секунду или несколько секунд (в зависимости от задачи) опрашивает сервер.

    Далее реализовываем третий запрос - получение результата. Как только на второй запрос получили ответ, что таск выполнен на 100%, отправляем запрос на получение результата который берет его из базы (или из redis, или из сессии, короче из любого хранилища. Если сайт не нагружен можно и в базе хранить в сериализованном виде).

    А сам соответственно таск пускает выполняется себе в фоне и никого не трогает. Если это vds или dedicated то на такие процессы вообще можно поставить ограничения и по памяти и по нагрузки на проц, или вообще вынести на отдельный docker или виртуальный контейнер. Короче, поле для деятельности масса.

    Плюсы такого варианта:
    • не нужно использовать современные технологии типа websoket (по их незнанию или по нежеланию или просто отсутствию возможности)
    • Поддержка браузеров явно больше чем у WebSocket (wikipedia)
    • достаточно использовать только встроенные технологии laravel
    • не требует сторонних библиотек


    Минусы данного подхода:
    • Все таки действительно 21 век на носу и можно уже изучить WebSocket
    • Требует постоянного опроса сервера, хоть нагрузка и небольшая от них, но все таки нагрузка
    • Вопрос с хранением результатов остается открытым для очень больших запросов и при высокой нагрузке
    Ответ написан
    Комментировать
  • Прогресс выполнения php foreach в ajax запросе?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Для такого придумали https://learn.javascript.ru/server-sent-events
    но в ie оно похоже уже никогда не появится
    caniuse.com/#feat=eventsource
    Ответ написан
    1 комментарий
  • Как задать стиль 6-му диву?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    :nth-child
    Ответ написан
    Комментировать
  • Правильно ли это хранить целые огромные html коды в базе?

    iiifx
    @iiifx
    PHP, OOP, SOLID, Yii2, Composer, PHPStorm
    Это зависит от задачи. Если стоит задача:
    - Реализовать раздел сайта для хранения блоков отображения, которые администратор быстро сможет редактировать в визуальном редакторе, создавать и подключать в отображения через специальный компонент в системе. Плюс кэширование, языковые версии и т.д.

    В рамках этой задачи вполне нормально.
    Ответ написан
    2 комментария
  • Как создать в Yii2 на отрендеренной из id странице рабочую кнопку далее и назад?

    abler98
    @abler98
    Software Engineer
    class Model extends yii\Db\ActiveRecord {
    	public function getPrev() {
    		return self::find()->where(['<', 'id', $this->id])->orderBy('id DESC')->one();
    	}
    	
    	public function getNext() {
    		return self::find()->where(['>', 'id', $this->id])->orderBy('id ASC')->one();
    	}
    }
    Ответ написан
    6 комментариев
  • Чем плохи сайты сделанные на базе конструкторов или каталогов?

    Antonoff
    @Antonoff
    Разработчик
    Тем, что они сделаны на базе конструкторов или каталогов.
    Ответ написан
    3 комментария
  • Как по вашему мнению лучше объяснить потенциальному клиенту, что его сайт устарел?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Ну, клиенты приходят не чтобы заказать сайт или какие-то работы (типа дизайна) по отдельности. Им нужно решать свои задачи (чаще всего — продавать товар, привлекать клиентов, только своих, и т.п.).

    У большинства художественный вкус таков, что показывая образцы самого современного и прогрессивного дизайна, будьте готовы наблюдать лёгкое непонимание. А на вопрос «Что нравится вам» приготовьтесь увидеть такие образцы говнодизайна, что аж дух захватывает в плохом смысле этого слова:). Обсуждение структуры — вообще, на мой взгляд, трата времени.

    Так что вам, всего-то, нужно ответить на самый важный вопрос — как смена сайта повлияет на продажи клиента?
    Ответ написан
    Комментировать
  • Как в yii2 узнать онлайн ли пользователь?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Пользователей не бывает онлайн.
    Соединение пользователя с веб-сайтом не постоянное, а дискретное.
    Поэтому цифра "пользователей онлайн" является всегда примерной, вычисляемой из времени последнего запроса пользователем сайта и таймаута - у кого на какой наглости хватит.

    Самые тупые похапешники берут таймаут сессии - 24 минуты.
    Ответ написан
    1 комментарий
  • Кто хочет раскритиковать сайт?

    seoperin
    @seoperin
    Full stack web developer. Laravel / Vue
    1) Не адаптивно
    2) Слайдер - это самый ненужный элемент сайта
    3) Зачем в сайдбаре календарь? (или планируется онлайн запись к врачам?)
    4) С точки зрения seo всё плохо, но расписывать даже не хочется
    5) Почему стили не в отдельным файле прописаны?
    6) Есть урлы на кириллице, не надо так
    7) На странице контактов мало контактов, надо как можно больше средств связи (не переборщить конечно), это опять же к вопросу о seo
    8) Слишком большой подвал (в подвале не должно быть всей навигации, только на основные разделы или только контакты + ссылки на соцсети)
    9) Местами встречаются англоязычные куски (7th Mar 2015; Search)
    10) Кнопки поделиться в соцсетях бессмысленны для коммерческих сайтов, только мешают. Можно их поставить на отдельных страницах с акциями, если в условиях акции будет поделиться ссылкой.
    Думаю хватит на первое время
    Ответ написан
    3 комментария
  • Кто хочет раскритиковать сайт?

    @vilgeforce
    Раздолбай и программист
    Называть клинику "фортуна" - прекрасно! Повезет или не повезет :-)
    Русский язык у вас сильно хромает: галлерея пишется все же с 1 л. Изучите aspell, а также громатеку и орфографею.
    Ответ написан
  • Как отправлять письма через swiftMailer в Yii2?

    @matperez
    Ответ конечно устарел, но многим может быть полезным. Вот так можно получить лог всего процесса отправки сообщения, а там уж ясно становится в чем проблема.

    $mailer = Yii::$app->get('mailer');
    $message = $mailer->compose() ... ;
    $logger = new Swift_Plugins_Loggers_ArrayLogger();
    $mailer->getSwiftMailer()->registerPlugin(new Swift_Plugins_LoggerPlugin($logger));
    if (!$message->send()) {
           echo $logger->dump();
    }
    Ответ написан
    5 комментариев
  • Как отправлять письма через swiftMailer в Yii2?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    'host' => 'smtp.mail.ru',
    'username' => 'account@domain.ru',
    'password' => 'password of account@domain.ru',
    'port' => '587',

    очевидно же
    www.yiiframework.com/wiki/656/how-to-send-emails-u...
    Ответ написан
    2 комментария