मेरे पास शीर्ष पर नेविगेशन बार और एक रैपर बॉडी वाला मूल पृष्ठ है।एकल पृष्ठ वेबसाइट में jquery AJAX का उपयोग कर पृष्ठों को लोड करते समय प्रोग्रेसबार दिखाएं
जब भी कोई उपयोगकर्ता नेविगेशन लिंक पर क्लिक करता है तो यह पृष्ठ सामग्री को wrapper div में लोड करने के लिए .load
का उपयोग करता है। .load
से वापसी मान के
$(this).ajaxStart(function(){$('.progressbar .bar').css('width','5%');$('.progressbar').fadeIn();});
$(this).ajaxEnd(function(){$('progressbar').hide();});
$('.ajaxspl').on('click',function(e){
e.preventDefault();
var url=$(this).data('url'),
wrap=$('body #wrap');
//clean the wrapper
wrap.slideUp().html('');
//load page into wrapper
wrap.load(url,function(){wrap.slideDown();});
});
उदाहरण:
<div>
...content
</div>
<script>$('.progressbar .bar').css('width','30%');</script>
<link href="/assets/css/datepicker.css" rel="stylesheet" />
<script>$('.progressbar .bar').css('width','60%');</script>
<link href="/assets/css/main.css" rel="stylesheet" />
<script>$('.progressbar .bar').css('width','90%');</script>
<script>//blah blah</script>
आप देख सकते हैं, मैं एक बूटस्ट्रैप प्रगति बार है कि मैं ajaxstart()
पर दिखाने के लिए है, और पेज है कि मैं फोन पर मैं की है कि मूल्य को संशोधित प्रत्येक आइटम लोड होने के बाद प्रगति पट्टी।
यह फ़ायरफ़ॉक्स पर अच्छी तरह से काम करता है और पेज लोड होने की प्रतीक्षा करते समय मैं प्रगति पट्टी देख सकता हूं, लेकिन यह क्रोम या आईई पर काम नहीं करता है।
क्या ऐसा करने का कोई बेहतर तरीका है? क्या मैं इसे सही तरीके से कर रहा हूं या ऐसा करने के लिए कोई और तरीका है?
उदाहरण के लिए, $.ajax
पृष्ठ केबी में पृष्ठ आकार प्राप्त करना और डेटा प्राप्त होने के कारण फ्लाई पर प्रगति पट्टी अपडेट करें?
मैं जीमेल लोड होने पर लोडिंग पेज के समान कुछ उत्पन्न करने की कोशिश कर रहा हूं।
यह उपयोगी है जब आप एक http बना सकते हैं: // JSFiddle .net – Amir
आपका jquery संस्करण क्या है? AJAX ईवेंट केवल jquery 1.9 से दस्तावेज़ से जुड़ा होना चाहिए। –
yp im 1.9 – Zalaboza