18

プラグイン

lazyloadという jQuery プラグインを使用しています。

lazyつまり、画像がビューポートの範囲内に入るまで、ブラウザでレンダリングされません。

これは、たとえば、多くの画像を含むページがあり、最初の読み込みで永遠に使いたくない場合に役立ちます。

ファイアフォックス

わかりましたので、Firefoxバージョンも使用しています23.0.1

問題

プラグインは素晴らしいですが、いくつかの画像の後で下にスクロールすると、画像が読み込まれない場所 (破損した画像リンクの一般的なプレースホルダーがあるだけ) でエラーが発生し始め、コンソールにログが記録されます。

Image corrupt or truncated: [image url]

画像に問題があるわけではありません。それらはすべて個別に適切にレンダリングされます。

ランダムなので特定の画像ではありません。ページを再度読み込むと、以前の画像corruptが読み込まれ、他の画像が壊れたリンクを返しcorrupt、コンソールにログインする可能性があります。

これを探し回ったところ、<img>srcタグの同時取得に問題があるようです。

おそらくフェッチに遅延を設定する必要がありますが、遅延の長さを常に判断できるとは限りません。また、ある画像が別の画像よりも大きい場合でも、競合する可能性があります (completeコールバックとは対照的に、静的な遅延時間が発生します)。

そのため、次のことをお願いしたいと思います。

a)誰かがこれに対する解決策を知っている場合 (エラーが発生したときにキャッチし、画像の読み込み関数を再トリガーするなど)
b)$.extend()コールバック関数を作成し、それまで待機する上記のライブラリ (lazyload) に誰かが提案できる場合すべてのアクティブなフェッチはcomplete、次のものをロードする前です(これが問題である場合-問題があるかどうかは わかりません)私はjQuery忍者ではないので、コードで少し迷っています。私はそれを理解することができましたが、おそらく汚れているでしょう...
c)これが問題でない場合、これをどのように解決できるかについての指示をいただければ幸いです

4

2 に答える 2

0

lazyload ライブラリの更新バージョンがあるかどうかを最初に確認します。 https://github.com/tuupola/jquery_lazyload/blob/master/jquery.lazyload.min.js

現在、v 1.9.7 が最新です。それは彼らがすでに修正したバグかもしれません。(変更ログ: https://github.com/tuupola/jquery_lazyload/blob/master/CHANGELOG.textile )

次に、どの jQuery バージョンを使用していますか? おそらく、古い遅延ロード ライブラリを使用した非常に古い jQuery がこの問題を引き起こしているのでしょうか? (それとも、最新の jQuery でしょうか?)

それでよろしければ、レイジーロードがどのように開始されるかを調べていただけますか? ajax リクエストがあり、遅延読み込みを再開しますか? (問題を引き起こすべきではありませんが、決してわかりません)。または、別の doctype/html 構造を試しますか?

何も機能しない場合は、html ドキュメントを「削除」して、遅延読み込みが機能する非常にクリーンなバージョン (ローカルホストのテスト、または jsfiddle など) を作成し、パーツを 1 つずつ元に戻します。最終的に、機能がどこで壊れているかがわかります。

jQuery v1.9.1 および Lazyload v1.9.7 では、次のように動作するはずです。

$('.lazy').lazyload();

テスト用の jsfiddle は次のとおりです: http://jsfiddle.net/web_nfo/21qb88v1/

あるいは、Firefox だけが問題なのかもしれません。現在、バージョン 40 が最新のものです。「ベータ版」もインストールされているのではないでしょうか? それともセーフモードオン?

于 2015-09-17T14:20:11.053 に答える