За последние 24 часа нас посетили 22853 программиста и 1212 роботов. Сейчас ищут 707 программистов ...

Отладка сайта

Тема в разделе "PHP для профи", создана пользователем phpdev1, 10 сен 2017.

  1. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    !

    я вижу это так: даже если при обломе JS твоя форма позволяет пользователю отправить данные во фрейм, то на этом всё и закончится. потому что возврат во фрейме на той же странице тебе обработать нечем. вывод: это не graceful degradation.

    ты прячешь фрейм, да?
     
  2. phpdev1

    phpdev1 Новичок

    С нами с:
    10 сен 2017
    Сообщения:
    22
    Симпатии:
    0
    Нет. Форма шлет POST запрос на страницу банка.
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    знаешь ли ты, что в случае если страница не получена, а тестовый пользователь попросил у браузера "исходный код страницы", то скорее всего будет повторный запрос (и новый результат)? и поэтому может выглядеть как будто всё хорошо

    https://stackoverflow.com/questions...w-source-be-set-to-not-make-a-new-get-request
    --- Добавлено ---
    меня смутила фраза "на этой самой странице". яподумал, что URL страницы не меняется :(

    ну собсна, тогда изначальное предположение в силе: твой "грейсфул" относится только к отправке. в то время как я спрашивал про страницу возврата — достаточно ли там серверного рендеринга чтобы страница была не белой?
     
  4. phpdev1

    phpdev1 Новичок

    С нами с:
    10 сен 2017
    Сообщения:
    22
    Симпатии:
    0
    Копию html-кода сохраняет сервер.
    Пользователь видит белую страницу вместо страницы отправки. Повторюсь, что до возврата из банка не доходит. Пользователь тупо не попадает в банк.
    --- Добавлено ---
    А вот отказ от googleapis не помог. Репорты продолжают приходить. :(
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    тогда зачем мы вообще говорим о банке? его ещё не было
     
  6. phpdev1

    phpdev1 Новичок

    С нами с:
    10 сен 2017
    Сообщения:
    22
    Симпатии:
    0
    Ты меня спрашиваешь? :) Я в самом первом посте написал, что до банка не доходит.
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    Я спрашиваю потому что обращения в банк ещё не было до проблемной страницы, то о нём вроде и упоминать было незачем.

    Давай суммируем:
    Есть финальная страница оформления заказа (чекаут). Она приходит с твоего сервера, а не жс её генерит. На этот момент получено достаточно информации, чтобы отправить запрос на оплату дальше на сторонний сайт (банк/агрегатор/не важно). Простого редиректа было бы достаточно, НО пользователь должен подтвердить факт намерение оплатить — неважно с жс или без, он кликает [ Оплатить ] и погнали.
    Но почему-то этой страницы пользователь иногда не видит.
    Правильно?

    Я подозреваю, что твои логи содержат только успешные ответы, в то время как запрос на саму эту страницу мог не поступать.
    Как такое отследить? Не знаю, пытаться полностью цепочку шагов логировать по сешн айди или ещё чему-то уникальному. Потом искать пересечения с репортами.

    Другая идея: страница не отрисовывается, если обломался JS. Нае*нулся по ошибке, а не отключен — есть разница. Если твой "грейсфул" это нечто внутри <noscript> то это блин не выход, т.к. ЖС не отключен и содержимое носкрипт не будет работать. Поэтому спрашиваю про "достаточно ли серверного рендеринга чтобы страница была не белой".
    --- Добавлено ---
    инлайн "display: none" а затем в JS замена на "display: block" ?
     
    #32 artoodetoo, 15 сен 2017
    Последнее редактирование: 15 сен 2017
  8. phpdev1

    phpdev1 Новичок

    С нами с:
    10 сен 2017
    Сообщения:
    22
    Симпатии:
    0
    Меня смущает формулировка "подтвердить факт оплаты". На этом этапе подтверждать нечего - пользователь еще ничего не оплатил. Он должен сначала попасть на страницу банка, сделать оплату, и уже потом банк вернет пользователя на страницу интернет-магазина, что и будет подтверждением факта оплаты. А так да, все верно.

    Давай скажем так - бывают проблемные чекауты (белая страница), и успешные чекауты (переадресация на банк). Так вот, проблемные чекауты успешно логируются. Сервер возвращает 200 с 18кб тела за 0.6-0.7 секунды. И эти записи в логах ничем не отличаются от успешных чекаутов (такие же показатели). В моменты проблемных чекаутов также нет спайков, что исключает проблему нагрузки.

    Увы, но страница идеально рендерится. <noscript> тэгов нет. Отвечая на твой вопрос - серверного рендеринга достаточно.

    Появилась новая идея - все проблемные чекауты за последнюю неделю были с IP адресов одного и того же провайдера. Может быть дело в нем. Но проверить это будет очень сложно.
     
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    ну мне жаль, что я не смог помочь. как выяснишь — напиши, прям заинтриговал. :)
     
  10. phpdev1

    phpdev1 Новичок

    С нами с:
    10 сен 2017
    Сообщения:
    22
    Симпатии:
    0
    Спасибо и на этом :) Я вообще удивлен что так много людей отозвалось.
     
  11. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
  12. phpdev1

    phpdev1 Новичок

    С нами с:
    10 сен 2017
    Сообщения:
    22
    Симпатии:
    0
    Да никак. Логи пустые, снепшоты исправные, избавился от google fonts, google maps, facebook sdk и других сторонних сервисов. Без результатов. Сейчас подключил sentry.io, но это скорее от безысходности, а не целенаправленная мера. Копаю дальше.:mad: