PHP зависает при печати минифицированного JavaScript, только для определенных пользователейApache

Ответить
Anonymous
 PHP зависает при печати минифицированного JavaScript, только для определенных пользователей

Сообщение Anonymous »

Это странный вопрос, который я все еще пытаюсь понять.
Чтобы исправить LCP в Core Web Vitals, я добавил встроенный JavaScript (130 КБ) в , а не загружать из отдельного файла (что обычно и следует делать, но LCP не прощает ошибок!).
Однако с тех пор у меня возникает случайные журналы «MySQL исчезли», и прежде чем я соединил точки, мне пришлось пройти долгий путь из нескольких выпусков, пока я не понял, что это связано с добавлением встроенного JS.
Это потому что отправка этого конкретного места иногда (случайно) занимала более 300 секунд, что является конфигурацией тайм-аута MySQL.
Когда я наконец определил место, я поставил StopWatch до и после и записать журнал, если это занимает более 2 секунд.
Ааааааааааааа..... Я получаю кучу журналов каждый день, печать этого встроенного JS занимает 2 секунды. секунды, 42 секунды, 7 секунд, 115 секунд, 15 секунд, ...........совершенно случайно.
НО... на удивление, это происходит только IP-адреса, которые являются VPN/прокси или ботом, например Googlebot или Sagou (китайская поисковая система). Насколько я вижу, с реальными пользователями этого не происходит (а у меня много пользователей 24 часа в сутки).
Я отключил output_buffering и zlib. output_compression и вместо этого заставил Apache выполнять DEFLATE, на случай, если именно OB/gzip вызывал конфликты с минимизированным JS...

Но нет... все еще происходит . :(
Я поместил встроенный JS в отдельный файл inline-script.php и потребовалd его в исходном файле php. Вместо этого я попробовал это readfile просто для того, чтобы содержимое кэшировалось в opcache, а не забивало диск :)

Но нет... все еще происходит.
Хорошо ... сохраните его в кэше памяти (работает на том же хосте, что и PHP) и распечатайте...

РЕШЕНО!!!
< hr />
Кто-нибудь знает, что здесь происходит??
И почему это происходит в основном/только с ботами/сканерами?< /p>
Это у них соединение медленное? Я бы не подумал, что PHP будет зависеть от пользовательского соединения, и предположу, что Apache - это тот, кто занимается пользовательским соединением??
Я не могу понять, как это может быть что-нибудь в содержимом встроенного JS противоречит синтаксису PHP или что-то в этом роде, потому что в противном случае это произойдет со всеми пользователями, а не только с некоторыми?
Это также не может быть связь, потому что PHP по-прежнему эффективно отправляет одни и те же байты, только что извлекая их из кэша памяти. Apache и пользователь по-прежнему получают один и тот же вывод!
Я рад, что, кажется, наконец-то устранил проблему, но я очень не понимаю, в чем причина.. 🤯

Подробнее здесь: https://stackoverflow.com/questions/789 ... ific-users
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Apache»