質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

929閲覧

lazyloadの読み込みの順番に関して[javascript]

coding_beginner

総合スコア0

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/05/29 06:23

編集2020/05/29 07:00

前提・実現したいこと

tuupola様の jquery.lazyload.min.js を使用しlazyloadの実装したところ
画像の読み込みの順番が気になり、質問をさせて頂きました。

下記の該当のソースコードに記載しております
id"image01"がlazyloadにより"幅300px高さ200pxの画像.jpg""の画像読み込みが始まるとき
左右に隣り合わせであるid"image07"の読み込みも始まって欲しいが
"1pxの正方形画像.gif"のままで変化がない。
id"image06"の読み込み後、id"image07"の読み込みが始まる。

jquery-3.5.1.min.js を導入済み。

解決法のご教授をお願い致します。

該当のソースコード

<html> <head> <script type="text/javascript" src="./jquery-3.5.1.min.js"></script> <script type="text/javascript" src="./jquery.lazyload.min.js"></script> <script> $(function(){ $("img.test_lazyload,.test_lazyload img").lazyload({ threshold:200,effect:"fadeIn"}); }); </script> </head> <body> <!-- 高さが1500px以上のコンテンツがあります。 --> <div width="1000" id="main"> <ul style="float:left;width:50%" class="test_lazyload"> <li><img src="1pxの正方形画像.gif" data-original="幅300px高さ200pxの画像.jpg" id="image01"></li> <li><img src="1pxの正方形画像.gif" data-original="幅300px高さ200pxの画像.jpg" id="image02"></li> <li><img src="1pxの正方形画像.gif" data-original="幅300px高さ200pxの画像.jpg" id="image03"></li> <li><img src="1pxの正方形画像.gif" data-original="幅300px高さ200pxの画像.jpg" id="image04"></li> <li><img src="1pxの正方形画像.gif" data-original="幅300px高さ200pxの画像.jpg" id="image05"></li> <li><img src="1pxの正方形画像.gif" data-original="幅300px高さ200pxの画像.jpg" id="image06"></li> </ul> <ul style="float:right;width:50%" class="test_lazyload"> <li><img src="1pxの正方形画像.gif" data-original="幅300px高さ200pxの画像.jpg" id="image07"></li> <li><img src="1pxの正方形画像.gif" data-original="幅300px高さ200pxの画像.jpg" id="image08"></li> <li><img src="1pxの正方形画像.gif" data-original="幅300px高さ200pxの画像.jpg" id="image09"></li> <li><img src="1pxの正方形画像.gif" data-original="幅300px高さ200pxの画像.jpg" id="image10"></li> <li><img src="1pxの正方形画像.gif" data-original="幅300px高さ200pxの画像.jpg" id="image11"></li> <li><img src="1pxの正方形画像.gif" data-original="幅300px高さ200pxの画像.jpg" id="image12"></li> </ul> <br style="clear:both"> </div> <!-- 高さが500px以上のコンテンツがあります。 --> </body> </html>

試したこと

クラス「test_lazyload」の付与箇所の変更

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

試したわけではないですが、画像を同じサーバーに置いているのであれば同時接続数の制限があるので一気に全画像取りに行くことはしないのではないかと思います。
身につけておきたいWebサイト高速化テクニック #2|検証ツールとそもそもHTTPって何だ編 | Developers.IO

投稿2020/05/29 06:31

aaharu

総合スコア441

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coding_beginner

2020/05/29 06:54 編集

回答ありがとうございます。 画像はすべて同じサーバーに置いております。 全て同時に画像の読み込みを行わせているわけではないので おそらく”同時接続数の制限”には該当しないかと思いますが このようなケースも”同時接続数の制限”に該当してしまうのでしょうか。 下記のように画像が並んでおり([]内はIDです) 上から徐々にスクロールを下げると [image01][image02][image03] といった順に読み込みがされますが、 読み込まれる想定をしている[image07][image08][image09]の読み込みが始まりません。 更にスクロールを下げ[image06]の読み込みが開始されると [image07] ~ [image12]の読み込みが始まります。 ・ページ表示イメージです --------------------------------------- [image01] [image07] [image02] [image08] [image03] [image09] >- ここまで画面上に表示 -< [image04] [image10] [image05] [image11] [image06] [image12] --------------------------------------- 説明がわかりにくく申し訳ございませんが、再度検討頂けると幸いです。
aaharu

2020/05/29 07:20

HTMLに書いた時点でsrcの方は読み込みはしようとするので該当しなくはないでしょうか。 Developer ToolsのNetworkの画像を貼って頂いたほうが解析しやすいと思います。
aaharu

2020/05/29 07:22

高さが1500px以上のコンテンツがあります。 こちら見逃してました。
coding_beginner

2020/05/29 07:44

Google Chrome > Developer Tools > Networkにて確認致しました。 【操作】下部スクロール Waterfall にて[image01]が読み込み開始 【操作】下部スクロール Waterfall にて[image02]が読み込み開始 【操作】下部スクロール Waterfall にて[image03]が読み込み開始 【操作】下部スクロール Waterfall にて[image04]が読み込み開始 【操作】下部スクロール Waterfall にて[image05]が読み込み開始 【操作】下部スクロール Waterfall にて[image06]が読み込み開始 Waterfall にて[image07]が読み込み開始 Waterfall にて[image08]が読み込み開始 Waterfall にて[image09]が読み込み開始 Waterfall にて[image10]が読み込み開始 Waterfall にて[image11]が読み込み開始 Waterfall にて[image12]が読み込み開始 ※上記すべて src に data-original に記載されている画像パス(幅300px高さ200pxの画像.jpg)が上書きされ、読まれた時の結果となります。 上記のような動作をしておりました。 画像添付できず申し訳ございません。
guest

0

自己解決

lazyroadを宣言する際に"failure_limit"を追加で解決いたしました。

failure_limitとは
何枚目までチェックするかを指定するもので、例えばfailure_limit: 9の場合、画面外にある1番目から10番目の画像をチェックして、画面内にある場合は表示されるようになります。
参考:http://cly7796.net/wp/javascript/plugin-jquery-lazyload/

<script> $(function(){ $("img.test_lazyload,.test_lazyload img").lazyload({ threshold:200,effect:"fadeIn,failure_limit:5"});//変更箇所 }); </script>

投稿2020/06/01 09:31

coding_beginner

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問