我有一个加载栏是一个Jquery插件,可以在这里找到: http://www.jqueryscript.net/loading/Smooth-Progress-Bar-Loading-Effect-With-jQuery.html
但是,条形图在重定向上工作,而不是显示实际加载的内容。当来自$(this).children()。html ...的以下代码到位时,我看到我的Inspect Element选项卡中的进度条从0% - 100%开始。这很好,因为它加载,但我希望页面保持最新并加载其他页面被点击,一旦栏是100%而不是。
类似于新的youtube red预装载器。非常确定这个脚本能够做到这一点,但经过几个小时的调整和尝试更改后,我似乎无法弄清楚如何。
我是PHP主管和新的jQuery:/
<script type='text/javascript'>
function loading(percent){
$('.progress span').animate({width:percent},1000,function(){
$(this).children().html(percent);
if(percent=='100%'){
$(this).children().html('Loading Complete, Redirect to Home Page... ');
setTimeout(function(){
$('.container').fadeOut();
location.href="http://www.jqueryscript.net";
},1000);
}
})
}
</script>
答案 0 :(得分:0)
这似乎是一种执行Ajax重定向的愚蠢方式。你不想完全加载新页面,这就是 Ajax应该真正有益的原因,因为你只需要刷新内部内容。
通过Ajax加载页面的更好方法包括:
X-REQUESTED-WITH: XMLHTTPRequest
,如果它存在,只需发送内容。这样,没有JavaScript的用户可以点击相同的链接并访问独立版本window.history.pushState
(see here来实现,但请记住,支持非常有限,特别是如果您的目标受众使用的是IE。
pushState
(如果可用),否则它将使用“hashbangs”来更新URL。这些在Twitter and Facebook等大型网站上非常受欢迎,但如果您使用的是现代浏览器,则可能会发现它们不再使用它们。他们倾向于分歧意见,主要是因为他们没有正确跟踪用户的历史记录,但据我所知,他们是旧版浏览器的唯一选择。我建议你阅读更多内容。transition
使用CSS width
。然后你的jQuery只需要更改load-bar元素的width
,而CSS将负责其余部分。 See tutorial