87,910
社区成员
发帖
与我相关
我的任务
分享
用django做了个电影推荐的小作业,其中写了一个算法需要运行40+秒,在得到推荐数据后将数据传回前端重新渲染页面。在算法完成前页面就一直没法反应挺难看的,用户体验不好。所以想到利用Ajax做一个加载等待动画。
def UserBasedCf(request):#基于用户推荐
....中间省略
return render(request, "index.html",
{'moviedata': mydata, 'moviedata_home': mydata2, 'username': username})
urlpatterns = [
path('User/basedCF/',UserBasedCf),
]
虽然能达到等待动画的目的,但是Ajax不能跳转页面,如果用我这种window.location.href跳转的话就会碰到运行两次这个算法的问题,这样花的时间就更多了..请问大佬们有什么好的解决办法吗?
$("#userCF").click(function(){
$.ajax({
url:"/User/basedCF/?username={{ username }}",
type:"GET",
success:function(response){
window.location.href = "/User/basedCF/?username={{ username }}";
},
beforeSend:function(){//等待动画还待添加...
$("#msg").text("加载中..");
},
complete:function(){
$("#msg").text("加载成功..");
}
})
});
页面效果大致如图