
私はかなり前からこの問題に悩まされています。Webkit ベースのブラウザでウェブサイトを閲覧すると、一貫して画像が読み込まれないのです。一貫していないというのは、一度試してみたら 1 枚または数枚の画像が正常に読み込まれるのに、他の画像は読み込まれないということです。同じウェブサイトをもう一度試してみたところ、以前は読み込まれなかった画像が突然読み込まれ、以前は読み込まれていた画像が突然読み込まれなくなります。この動作は非線形なので、問題の原因を突き止めるのに非常に苦労しています。この問題は、、、などのブラウザで再現できることに気づきましたjumanji
。dwb
これらvimperator
すべてのブラウザに共通するのは、を使用していることだと私は考えていますwebkit
。ウェブページを繰り返し再読み込みすると、すべてのリソースが正しく読み込まれる結果になることがあります。
以下に、説明した動作のスクリーンショットを示します (Webkit ベースからluakit
)。
ご覧のとおり、これらは 2 つの失敗した画像であり、ここでの一般的な動作を示しています。この問題は、Firefox や Chrome (それぞれgecko
とを使用していると思いますblink
) などのブラウザーでは再現できません。画像/要素を右クリックして新しいウィンドウで開くと、問題なく画像を表示できます。Arch Linux カーネル 3.12.9-1-ck を実行しています。何が起こっているのかについて、ご助言やご見解をいただければ幸いです。ありがとうございます。
アップデート:すべての壊れた画像は、luakit のデバッグ コンソールで要素として検査されると、次の一般的な形式のものを出力します。
GET [web address here] Cannot resolve hostname [domain here]
更新2:私は、自分のシステム (Debian ベース) にある のluakit
VirtualBox インストールに経由でインストールしてみましたが、興味深い結果になりました... 解決されていないホスト名、壊れたイメージ、失敗したリソースなどの症状は見られませんでした。この仮想環境では、ブラウジングも比較的高速です。kali-linux
apt-get install luakit
解決:
@harrymc の提案 (Google パブリック DNS の使用) に従うと、ページの読み込みが遅いという症状がすべて完全に解消されました。@harrymc によると、これは DNS の欠陥や速度の遅さ、または DNS キャッシュ戦略の悪さによるものです。具体的には、この問題の原因は DNS の悪さと、webkit
エンジンに組み込まれたかなり早まったタイムアウト プロトコルのようです。この 2 つの要因は、災難を招く原因となります。
よりオープンエンドな思考の弧:
もう 1 つの結論は、Webkit ブラウザが最初のクエリを記憶せずに、同じ Web サイトに対して複数の DNS クエリを発行するという点で非効率であるということです。もう 1 つの結論は、ISP の DNS サーバーが複数の並列リクエストを処理できないことがあるということです (ブラウザはおそらくスレッドを介して複数の画像を並列に処理するため)。これは、クライアントが増えたのに DNS サーバーが足りないためと考えられます。 --ハリー・マク
答え1
からWebkit のタイムアウトにより長時間実行タスクが強制終了される:
Webkit チームが、60 秒というハードコードされた非表示のタイムアウトによってすべての XML HTTP リクエストを制限するという独断的な決定を下したため、AIR ベースの RIA の 1 つをかなりの部分リファクタリング/再コーディングせざるを得なくなりました。この決定は AIR だけでなく、Safari や Webkit ベースの他のブラウザにも影響します。
これは必ずしもあなたの問題に関係するわけではありませんが、Webkit にハードコードされたタイムアウトが存在することを示しています。
問題が Webkit のタイムアウトが短すぎることに関連している場合、接続が高速であるにもかかわらず、なぜ画像の待ち時間が長くなっているのかが疑問になります。
最初のテストとして、DNSサーバーを次のように変更することをお勧めします。 Google パブリック DNSまたはオープンDNS、これが違いをもたらすかどうかを確認してください。違いをもたらす場合、問題は ISP の DNS が遅すぎるか、ISP 独自のキャッシュを使用していることにあります。
もう一つの参考文献User-Agent による HTTP キープアライブの無効化:
Safari の長年のバグにより、キープアライブ接続が不適切に再利用されると、ファイルのアップロードがハングします。
https://bugs.webkit.org/show_bug.cgi?id=5760
Apache では、Webkit の keepalive サポートを無効にすると、この問題は解決します。
Apache WebサーバーがWebkitのkeepaliveを無効にしている場合(HTTP 持続接続) の場合、各画像には個別の HTTP 接続が必要になりますが、Firefox と Chrome ではページの既存の接続を使用して、再接続せずに画像をダウンロードすることもできます。
通常、接続の確立には非常に時間がかかるため、これに短い組み込みタイムアウトが加わると、Webkit の画像に関する問題が発生する可能性があります。
Webkitブラウザには、ユーザーエージェント 身元 ?
例えば、私はvimperatorについて全く何も知らなかったのですが、Googleでプラグインを見つけましたユーザーエージェントスイッチャーLite。