ソリューションをラップするための優れた関数を見つけるために、しばらく時間を費やしました。とにかく、これは、単一のページまたはサイト全体に複数のコンテンツをロードする場合のより良い解決策であると私が感じる結果になりました。
働き:
function ifViewLoadContent(elem, LoadContent)
{
var top_of_element = $(elem).offset().top;
var bottom_of_element = $(elem).offset().top + $(elem).outerHeight();
var bottom_of_screen = $(window).scrollTop() + window.innerHeight;
var top_of_screen = $(window).scrollTop();
if((bottom_of_screen > top_of_element) && (top_of_screen < bottom_of_element)){
if(!$(elem).hasClass("ImLoaded")) {
$(elem).load(LoadContent).addClass("ImLoaded");
}
}
else {
return false;
}
}
次に、スクロール時のウィンドウを使用して関数を呼び出すことができます(たとえば、私もそうするように、クリックなどにバインドすることもできます。したがって、関数です)。
使用するには:
$(window).scroll(function (event) {
ifViewLoadContent("#AjaxDivOne", "someFile/somecontent.html");
ifViewLoadContent("#AjaxDivTwo", "someFile/somemorecontent.html");
});
このアプローチは、スクロールdivなどでも機能するはずです。上記の質問では、このアプローチを使用してコンテンツをセクションにロードし、バルクフィードではなく、すべての画像データを追加してドリブルフィードすることができます。
このアプローチを使用して、 https://www.taxformcalculator.comのオーバーヘッドを削減しました。サイトを見て要素などを調べると、Chromeでのページの読み込みへの影響を確認できます(例として)。