Задать вопрос
  • Можно ли настроить pjax на wordpress не меняя бэкенда?

    xPomaHx
    @xPomaHx Автор вопроса
    1vs9
    Вообщем можно, у этой библиотеки таймаут по умолчанию стоит просто не рабочий. и когда за пол секунды он не получает страницу он ее грузит обычным образом, я не мог отловить это поведение. Ставьте таймаут секунд 10 у меня даже на локалхосте не получается сделать чтобы со стандартом работало. Мб еще дело в опенсервере.
    Ответ написан
    3 комментария
  • Php, как проверить на слово в поиске?

    @Wol_fi
    php, js, mysql, highload
    $sourceStream = fopen("/path/to/source.txt", "r");
    $yesFileStream = fopen("/path/to/yes_keys.txt", "w");
    $noFileStream = fopen("/path/to/no_keys.txt", "w");
    if ($sourceStream && $yesFileStream && $noFileStream) {
        while (($buffer = fgets($sourceStream, 4096)) !== false) {
            $key = trim($buffer);
            $data = file_get_contents('http://mydomain.com/search.php?k=' . urlencode($key));
            if (strpos($data, 'yes') !== false) {
                fwrite($yesFileStream, $key . PHP_EOL);
            } else {
                fwrite($noFileStream, $key . PHP_EOL);
            }
        }
        fclose($sourceStream);
        fclose($yesFileStream);
        fclose($noFileStream);
    }

    примерно так
    Ответ написан
    1 комментарий
  • Какие есть практические курсы\уроки по html5 + css3 + javascript?

    websanya
    @websanya
    Фронтенд разработчик, подкастер
    Для теории есть YouTube канал uWebDesign, там очень много роликов про CSS технологии, а также подкасты и стримы с практиками.
    Ответ написан
    2 комментария
  • События для динамически добавленных в DOM элементов?

    @GR0ST
    jQuery работает с элементами, которые были на странице на момент инициализации кода.

    Если добавляются новые элементы - при помощи ajax'а или функций типа append() - то события не затрагивают их.

    Как же работать с новыми созданными элементами DOM?

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

    Если кратко, то смысл делегирования в том, что обработчики "навешиваются" не на отсутствующие в dom элементы, а на существующий родительский объект.

    Таким образом, при срабатывании соответствующего события, будет вызван данный обработчик для всех элементов, соответствующих селектору, даже если этих элементов не было во время объявлении обработчика (например при загрузке страницы).

    пример можно подсмотреть тут
    moxiemaks.ru/2017/06/25/sobytija-dlja-dinamicheski...
    Ответ написан
    Комментировать
  • Как настроить backup VDS на Яндекс.Диск?

    @mureevms
    Предисловие.
    Вы должны смонтировать Ядиск как описано в этой статье в каталог /mnt/yadisk, туда будут копироваться все бэкапы
    Для бэкапа всей системы лучше пользоваться инструментами которые предлагает хостер. Если таких нет или планируется переезд всей системы, то используйте п.1.
    Специально оставляю одну копию каждого бэкапа на VDS для удобства восстановления какого-либо файла.
    Прокомментирую только первый файл, остальные сделаны по подобию.
    Каталоги в /home/backup/... и /mnt/yadisk/... должны быть созданы.
    Скрипт бэкапа разбит на 4 штуки намеренно для удобства использования и запуска по крону с разными временными интервалами, что и надо будет сделать отдельно.
    Так же, советую предварительно перед бэкапом проверять смонтирован ли Ядиск, иначе место может внезапно закончится на сервере. Если интересно, то потом дам ссылку как это сделать.

    Бэкап

    1. Бэкап системы осуществляется при помощи команды tar
    Файл system_backup.sh:
    #!/bin/sh
    TIME=`date +%Y-%m-%d`
    # Что бэкапить
    WHAT=/
    # Куда класть бэкап
    WHERE=/home/backup/system
    # Куда копировать бэкап
    COPY=/mnt/yadisk/system
    # Бэкап системы. Файл бэкапа исключает системные каталоги и каталоги куда кладутся сами бэкапы
    tar -cpzf $WHERE/$TIME.tgz --exclude=/dev --exclude=/proc --exclude=/lost+found --exclude=/home/backup --exclude=/mnt /
    # Скопировать на файл бэкапа на Ядиск 
    cp $WHERE/$TIME.tgz $COPY
    ### Удалить старые файлы бэкапов
    # Оставить на VDS только последний
    find $WHERE -mtime +1 -print -delete
    # Удалить с Ядиска бэкапы месячной давности
    find $COPY -mtime +30 -print -delete


    2. Бэкап конфигов осуществляется так же при помощи команды tar (при текущих исходных данных все конфиги лежат в /etc)
    Файл etc_backup.sh:
    #!/bin/sh
    TIME=`date +%Y-%m-%d-%H:%M`
    WHAT=/etc
    WHERE=/home/backup/etc
    COPY=/mnt/yadisk/etc
    tar -cpzf $WHERE/$TIME.tgz $WHAT
    cp $WHERE/$TIME.tgz $COPY
    find $WHERE -mtime +1 -print -delete
    find $COPY -mtime +30 -print -delete


    3. Бэкап сайтов осуществляется аналогично (предполагаю, что они лежат в /var/www/)
    Файл www_backup.sh:
    #!/bin/sh
    TIME=`date +%Y-%m-%d-%H:%M`
    WHAT=/var/www
    WHERE=/home/backup/www
    COPY=/mnt/yadisk/www
    tar -cpzf $WHERE/$TIME.tgz $WHAT
    cp $WHERE/$TIME.tgz $COPY
    find $WHERE -mtime +1 -print -delete
    find $COPY -mtime +30 -print -delete


    4. Бэкап MySQL осуществляется при помощи команды mysqldump
    Файл mysql_backup.sh
    #!/bin/sh
    TIME=`date +%Y-%m-%d`
    # Логин пользователя мускула
    USER=root
    # Пароль пользователя мускула
    PASS=root_password
    WHERE=/home/backup/mysql
    COPY=/mnt/yadisk/mysql
    ### Базы которые надо бэкапить
    for base in base_name1 base_name2
    do
    # Сделать дамп баз
    mysqldump -u$USER -p$PASS -B $base > $WHERE/$base-$TIME.sql
    done
    cp $WHERE/$base-$TIME.sql $COPY
    find $WHERE -mtime +1 -print -delete
    find $COPY -mtime +30 -print -delete


    Восстановление

    Восстановление сайтов и конфигов осуществляется простым копированием в место назначения.
    Восстановление баз:
    mysql -u root -p root_password -f base_name1 < /home/backup/mysql/base_name1.sql
    mysql -u root -p root_password -f base_name2 < /home/backup/mysql/base_name2.sql


    Восстановление системы более сложный процесс, но суть сводится к одному - сделать чистую установку аналогичной ОС, загрузится с LIVE CD, подмонтировать Ядиск и распаковать архив в root директорию (root директорией называют корень файловой системы - / ), за исключением каталога /boot
    ОБЯЗАТЕЛЬНО заранее проделать восстановление на отдельной виртуалке.

    Вместо послесловия
    Такой бэкап, как говорится, и палкой не убить. Единственное, что надо делать - время от времени руками проверять архивы бэкапов на читаемость и прохождению нормального разархивирования. К сожалению, архивы бывают битыми.
    Ответ написан
    16 комментариев
  • Срабатывает функция удалённого класса, при этом не работает функция добавленного класса?

    @Cage
    Это потому что у вас не совсем корректное представление о привязке обработчиков событий к DOM
    элементам
    конструкция которую вы используете:
    $(".active").click(function(){
    ...
    });

    отрабатывает один раз и только для тех элементов которые в момент загрузки страницы имели класс "active"
    Попробуйте все конструкции поменять на следующие:
    $("body").on('click','li.active',function(){
     ...   
    })
    Ответ написан
    Комментировать