मैंने कुछ समय एक समाधान को लपेटने के लिए एक अच्छा कार्य खोजने की कोशिश में बिताया। वैसे भी, इस के साथ समाप्त हुआ जो मुझे लगता है कि एक पृष्ठ पर या एक साइट पर कई सामग्री लोड करते समय एक बेहतर समाधान है।
समारोह:
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");
});
यह दृष्टिकोण स्क्रॉलिंग विभाग आदि के लिए भी काम करना चाहिए। मुझे आशा है कि यह मदद करता है, ऊपर दिए गए प्रश्न में आप इस सामग्री का उपयोग अनुभागों में अपनी सामग्री को लोड करने के लिए कर सकते हैं, हो सकता है कि अपग्रेड करें और इस तरह से वह सभी डेटा डेटा बल्क फीड के बजाय फीड कर दें।
मैंने https://www.taxformcalculator.com पर ओवरहेड को कम करने के लिए इस दृष्टिकोण का उपयोग किया । यह चाल मर गया, यदि आप साइट को देखते हैं और तत्व आदि का निरीक्षण करते हैं तो आप क्रोम में पेज लोड (उदाहरण के लिए) पर प्रभाव देख सकते हैं।
new_element.hide().appendTo('.your_div').fadeIn(); $(window).scrollTop($(window).scrollTop()-1);
पहली पंक्ति तत्वों को अच्छे तरीके से जोड़ती है, दूसरा आश्वासन देता है कि आपका कार्य पृष्ठ के नीचे कभी नहीं रुकता है।