我有一個基本頁面,頂部有一個導航欄和一個包裝體。在單頁面網站中使用jquery ajax加載頁面時顯示progressbar
只要用戶點擊導航鏈接,它就會使用.load
將頁面內容加載到包裝div中。從.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()
,而我所說的頁面上我修改的那個值每個項目後的進度條被加載。
這很適用於Firefox,我可以在等待頁面加載時看到進度條,但它在Chrome或IE上不起作用。
有沒有更好的方法來做到這一點?我是否正確地做了這件事,還是有另一種方法來做到這一點?
例如,獲取$.ajax
頁面大小(KB),並隨着數據的接收即時更新進度條?
我試圖在加載Gmail時生成類似於加載頁面的內容。
這是有用的,如果你可以創建一個HTTP://的jsfiddle .net – Amir 2013-03-11 04:50:08
你的jQuery版本是什麼? AJAX事件應該只附加到jquery 1.9的文檔中。 – 2013-03-15 20:05:52
yp im使用1.9 – Zalaboza 2013-03-15 21:27:09