it-swarm.dev

HTMLの外にある無関係な文字が原因でページの読み込みが非常に遅くなる

サイトのページの読み込みが非常に遅い場所を確認する問題が発生しました-13〜20秒です。このサイトは明らかにさまざまなアドオンでカスタマイズされています。私はそれをいくつか掘り下げて、通常のデバッグを有効にし、さまざまな領域でいくらか遅いことを示したプロファイルをチェックしましたが、ページの読み込み時間全体を合計するものはありませんでした。実際、一部のページスキャンツール(Googleを含む)は、ページが約4秒程度でロードされたと主張するだけで(プロファイルと同じ)速度低下を正しく認識しませんでした。

少し踏み込んでさらに掘り下げたところ、Telnetを使用して問題が見つかりました。ここに私が得たものの例があります。

まず、完全に基本的なGETリクエストを使用しました。

GET / HTTP/1.1
Host: www.slowsite.somewhere

次に出力例を示します。

HTTP/1.1 200 OK
Date: Mon, 03 Nov 2014 09:22:13 GMT
Server: Apache/2.4.9 (Unix)
X-Powered-By: PHP/5.3.28
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Cache-Control: no-cache
Pragma: no-cache
Set-Cookie: f3c945355423e6c96228179d74322888=tbh278qicf0cle0j8nc5pf0fu3; path=/; HttpOnly
Vary: Accept-Encoding,User-Agent
Cache-Control: max-age=2592000
Expires: Wed, 03 Dec 2014 09:22:13 GMT
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8

702a
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb" dir="ltr"><head><base href="http://XXXXXXXXXXXX/" /><meta http-equiv="content-type" content="text/html; charset=utf-8" /><meta name="generator" content="Joomla! - Open Source Content Management" /><title>Home</title><link href="http://XXXXXXXXXXX/?view=featured" rel="canonical" /><link href="/?format=feed&amp;type=rss" rel="alternate" type="application/rss+xml" title="RSS 2.0" /><link href="/?format=feed&amp;type=atom" rel="alternate" type="application/atom+xml" title="Atom 1.0" /><link href="/templates/XXXXXXXXX/favicon.ico" rel="shortcut icon" type="image/vnd.Microsoft.icon" /><link rel="stylesheet" href="/components/com_rsform/assets/calendar/calendar.css" type="text/css" /><link rel="stylesheet" href="/components/com_rsform/assets/css/front.css" type="text/css" /><link rel="stylesheet" type="text/css" href="/plugins/system/jch_optimize/assets2/jscss.php?f=953dd117283665c8de4b1dbc99fa7ebc&amp;type=css&amp;gz=gz&amp;d=30&amp;i=0"/><link rel="stylesheet" href="/modules/mod_slideshowck/themes/default/css/camera.css"

その後、最後にダウン...

<div class="footer3">© 2014 XXXXXXXXXXX. All rights reserved</div><div class="clear">&nbsp;</div><div class="footer-bottom">Company Name: XXXXXXXXXX. Company Registration No/Place of Registration: XXXXXXXXX Cardiff Registered Office Address: XXXXXXX</div></div></div></div></div></body></html>
0

ご覧のとおり、HTMLの外側にテキストがいくつかあります。何らかのデバッグ用の16進ワード出力のように見えます。最初のものは常に変化します(例71396fc3)ですが、最後の最後は常に0です。

これを以前に見た人と一緒にベルが鳴ることを願っていますか?

そうでなければ、私はこれについて掘り下げる必要があります-JoomlaとPHPは、何年も前に最後にプログラムしたので、非常に錆びていることはありませんでした。

興味深いことに、ブラウザー(Chrome、エクスプローラーなど)でページのソースを表示すると、この余分なデータはまったく表示されません。全く見えない。表示されるのは、サイトにtelnetで接続した場合だけです。

次に興味深いのは、おそらく末尾の<newline>0<newline> 後に </html>は、ブラウザにさらに多くのデータがあると考えさせるようで、デフォルトのHTTP 1.1キープアライブがタイムアウトして接続をドロップするまで、ページをレンダリングしようとしません。ブラウザーがCSS、Javascript、画像などを要求するのはそのときだけです。これは、たとえばtools.pingdom.comやgtmetrix.comなどのタイムライン/ウォーターフォールグラフから表​​示できます。

参考までに、おそらく関係のないサイトは、過去7年間使用してきた http://www.heartinternet.co.uk/ でホストされており、非常に信頼性が高く、優れたパフォーマンスを発揮していますが、 Joomlaサイトがありました(これは別の場所で開発されました)

1
Ian Macintosh

TelnetのTransfer Encodingchunkedであることに注意してください。つまり、7139は28985バイトの受信を意味し、702aは28714バイトの受信を意味します。

心配しないでください。遅れはどこか別の原因によるものです。

2
Farahmand

一部のサードパーティのプラグインがゼロを生成している可能性があります。

  • Htmlに含める必要があるため、モジュールまたはコンポーネントの出力ではありません。
  • ゼロはHtmlの後に生成されるため、セッションを閉じるなど、Joomlaが実行を終了する前にレンダリングされます。

原因を特定するために、すべての非コアプラグイン(およびその他すべて)を1つずつ無効にします。

2
Anibal