Задать вопрос
  • Как получить url редиректа сервера xmlhttprequest?

    muzikant777
    @muzikant777
    PHP/Vue разработчик
    А почему сервер возвращает 200, а не 301/302?
    Решением в вашем случае будет отправка ответа от сервера с кодом 302 и кастомным заголовком (типа X-Redirect), и последующей его проверкой в js.

    Так, например, сделано в Yii2:
    if (Yii::$app->getRequest()->getIsAjax()) {
                    if (Yii::$app->getRequest()->getHeaders()->get('X-Ie-Redirect-Compatibility') !== null && $statusCode === 302) {
                        // Ajax 302 redirect in IE does not work. Change status code to 200. See https://github.com/yiisoft/yii2/issues/9670
                        $statusCode = 200;
                    }
                    if (Yii::$app->getRequest()->getIsPjax()) {
                        $this->getHeaders()->set('X-Pjax-Url', $url);
                    } else {
                        $this->getHeaders()->set('X-Redirect', $url);
                    }
                } else {
                    $this->getHeaders()->set('Location', $url);
                }

    И проверка:
    $(document).ajaxComplete(function (event, xhr) {
                var url = xhr && xhr.getResponseHeader('X-Redirect');
                if (url) {
                    window.location.assign(url);
                }
            });


    Ну, и нужно помнить, что IE считает AJAX, который вернул не 200, ошибочным ответом. ¯\_(ツ)_/¯
    Ответ написан
    Комментировать
  • Как правильно писать mysql запрос?

    qonand
    @qonand
    Software Engineer
    наклонные кавычки `` используются для экранирования служебных слов базы данных
    обычные '' для указания строк

    P.S. и отучитесь вставлять неподготовленные переменные в запросы, если не хотите в последствие проблем с sql-инъекциями
    Ответ написан
    Комментировать
  • Symfony + React + SSR + SEO?

    crazy_leo
    @crazy_leo
    Frontend Developer
    1) У SPA приложений проблема с SEO присутствует, так как приложение строится не на сервере, а на клиенте. Т.е все приложение, как ты писал выше, находится в js скриптах и сервер - отдает пустую html страницу со скриптами и т.д. Но само содержимое приложения в этой странице нет, так как оно формируется, после того как загрузились скрипты.
    Получается, что поисковики видят пустую страницу без содержимого самого приложения.
    Единственно, пока что google поисковик научился ждать, пока загрузятся скрипты и соответственно пока не построится приложение. Но есть очень много других поисковиков, которые это делать не умеют (Яндекс поисковик, к примеру).
    Также плюс SSR в том, что страница быстрее появляется у клиента, так как оно строится как на клиенте так и на сервере. А без SSR, сначала отобразится пустая страница, потом загрузится скрипт и только потом отобразится само приложение. Но также рендеринг средних React приложений - это много вычислений, что на ноде очень плохо. (Но там можно делать свои хаки чтобы все работало шикарно)

    Поэтому ты должен сравнить плюсы и минусы!

    Если тебе хватает google поисковик и особо не нужно чтобы страница быстрее отображалась у клиента, то да можешь обойтись без SSR. (Конечно можешь использовать платные сервисы или какой либо виртуальный браузер, но это все гавно по сравнению с SSR. В этих решениях очень много минусов)

    Если этого всего необходимо, то придется реализовать SSR. Это не сложно. Главное понять суть React и некоторых его сопутствующих библиотек если они используются (styled-components, redux). (Я реализовал SSR за 60 средних строк. Там много чего предусмотрено)

    2) На нем можно создавать приложения, но я не использовал React Native и точно тебе сказать не могу. Но знаю что там, нету всего из коробки, если нужно будет что-то сложное, которого нет в React Native, то придется писать нативные модули под React Native. А так конечно можно его изучать и использовать.

    3) SPA - тренд, поэтому надо. Также это очень хорошая концепция в перспективе, убедился на практике
    Ответ написан
    Комментировать
  • Как реализовать отказоустойчивость mysql?

    Sanes
    @Sanes

    НО периодически раз в 2-5 мес. у провайдера падает сеть минут на 15

    Это не та проблема, когда надо городить огород, в котором плохо разбираетесь. Еще хуже сделаете.
    Наверняка есть провайдеры без таких провалов. Но мне не встречались. При том, что не всё от них зависит.
    Ответ написан
    2 комментария