向后端获取随机一张图片,会出现重复情况
代码场景:切换头像图片
我用 ajax 向后端获取一张和原来不一样的图片
但是偶偶就会出现获取到重复图片的现象,是后端逻辑有问题吗?
var isAjax=false
var img = document.getElementById('bg_img')
jQuery(document).ready(function(){
jQuery('#bg_img').click(function(e){
if(isAjax){
return;
}
isAjax=true;
e.preventDefault();
jQuery.ajax({
url: "{{ route('bg.change') }}",
data:{
img:"{{$bg_img}}"
},
method: 'post',
success: function(result){
if(result != ''){
isAjax=false
console.log('新图片'result);
}
}
});
});
});
public function bg_change(Request $request)
{
$img = $this->randImg($request->img);
return $img;
}
public function randImg($img){
$imgs= [
'/img/bg1.jpg',
'/img/bg2.jpg',
'/img/bg3.jpg',
'/img/bg4.jpg',
'/img/bg5.jpg',
];
//随机获取一张图片
$new = array_rand($imgs,1);
//如果和原来的图片一样就获取这张图后面一张
if($img == $imgs[$new]){
return $imgs[$new+1];
}else{
return $imgs[$new];
}
}
感觉应该是原来 blade 模板里的变量没有改变的问题,已换方法
推荐文章: