मैं jQuery के साथ धीमे ऑपरेशन के दौरान एक छोटी लोडिंग छवि दिखाने की कोशिश कर रहा हूं और इसे सही नहीं कर सकता। यह हजारों पंक्तियों के साथ एक बड़ी मेज है। जब मैं "mostrarArticulosDeReferencia" चेकबॉक्स को चेक करता हूं तो यह इन पंक्तियों से "छिपी हुई" कक्षा को हटा देता है। इस ऑपरेशन में कुछ सेकंड लगते हैं और मैं कुछ फीडबैक देना चाहता हूं। "लोड हो रहा" एक छोटी सी ऐनिमेटेड gifjQuery शो "लोडिंग"
यहाँ के साथ एक div है "के अनुकूलन" उन 3 लाइनों
jQuery("#loading").show(); //not showing
jQuery("#listadoArticulos tr.r").removeClass("hidden");
jQuery("#loading").hide();
और कभी नहीं लोड हो रहा है पता चलता पूर्ण कोड
jQuery(document).ready(function() {
jQuery("#mostrarArticulosDeReferencia").click(function(event){
if(jQuery("#mostrarArticulosDeReferencia").attr("checked")) {
jQuery("#loading").show(); //not showing
jQuery("#listadoArticulos tr.r").removeClass("hidden"); //slow operation
jQuery("#loading").hide();
} else {
jQuery("#loading").show(); //not showing
jQuery("#listadoArticulos tr.r").addClass("hidden"); //slow operation
jQuery("#loading").hide();
}
});
jQuery("#loading").hide();
});
यह jQuery की तरह लग रहा है div। कोई विचार?
बोनस: इस शो/छुपा चीज करने का एक तेज़ तरीका है? पता चला कि टॉगल रास्ता धीमा है।
अद्यतन: मैं इस
jQuery("#mostrarArticulosDeReferencia").click(function(event){
if(jQuery("#mostrarArticulosDeReferencia").attr("checked")) {
jQuery("#loading").show(); //not showing
jQuery("#listadoArticulos tr.r").removeClass("hidden"); //slow operation
setTimeout("jQuery('#loading').hide()", 1000);
} else {
jQuery("#loading").show(); //not showing
jQuery("#listadoArticulos tr.r").addClass("hidden"); //slow operation
setTimeout("jQuery('#loading').hide()", 1000);
}
});
की कोशिश की है यही कारण है कि मैं चेकबॉक्स पर
- क्लिक
- 2/3 सेकेंड (प्रोसेसिंग)
- पेज अद्यतन हो जाता है दौरान कुछ भी नहीं होता मिल
- लोडिंग div एक विभाजित दूसरे के दौरान दिखाता है
अद्यतन 2: मुझे एक समाधान समाधान मिला है। बस इस विशेष मामले के लिए एक बेहतर समाधान पाया: लेकिन क्यों मैं इसे काम करने के लिए setTimeout का उपयोग करने के लिए है
jQuery("#mostrarArticulosDeReferencia").click(function(event){
if(jQuery("#mostrarArticulosDeReferencia").attr("checked")) {
jQuery("#loading").show();
setTimeout("jQuery('#listadoArticulos tr.r').removeClass('hidden');", 1);
setTimeout("jQuery('#loading').hide()", 1);
} else {
jQuery("#loading").show();
setTimeout("jQuery('#listadoArticulos tr.r').addClass('hidden');", 1);
setTimeout("jQuery('#loading').hide()", 1);
}
});
अद्यतन 3 मुझे परे है ...।
//mostrar u ocultar articulos de referencia
$("#mostrarArticulosDeReferencia").click(function(event){
if($("#mostrarArticulosDeReferencia").attr("checked"))
$("tr.r").css({'display':'table-row'});
else
$("tr.r").css({'display':'none'});
});
({ 'प्रदर्शन': 'कोई नहीं'}) .css का उपयोग करते हुए पता चला है छिपाने() की तुलना में तेजी से रास्ता है, इसलिए लोड हो रहा है एनीमेशन के लिए कोई जरूरत नहीं ...
यह लेख मुझे प्रकाश दिखाया : show/hide performance।
क्या आप पृष्ठ लोड होने के दौरान इसे चलाने के लिए चाहते हैं? $ (दस्तावेज़) .ready() आग लगती है जब सबकुछ नीचे होता है और – AutomatedTester
लोड नहीं होता है, मुझे केवल शो/छुपा ऑपरेशन के दौरान इसकी आवश्यकता होती है। बस पूरी स्क्रिप्ट चिपकाया –
बस एक विचार, क्या आपने संदर्भों का उपयोग करने की कोशिश की है? यदि आप अपने चयनकर्ता कथन में दूसरा तर्क देते हैं, तो यह गति में मदद कर सकता है। –