我已经创建了一个图片管理器,我正在使用jquery加载每个网址,但是,当我更改了' src'在ajax请求中的属性,图像需要几秒钟才能显示在浏览器中,我试图放置一个微调器并等待一旦请求加载就显示所有内容,但是,如果我检查了&s 39属性url已经加载了,但是没有图像,我也尝试通过在jquery加载方法中放置我的请求来解决这个问题,但我也不能工作,在这些情况下可以做些什么?
$(window).on("load", function() {
$.ajax({
async:true,
cache:false,
dataType: 'json',
type: 'get',
url: 'cargarBanner',
success: function(data){
ajax_start();
if (data.success==true)
{
for(var i=0;i<data.banner.length;i++)
{
switch(data.banner[i].banner_type)
{
case "encabezado":
$("#"+data.banner[i].banner_type+" img").attr('src',flagsUrl+"/"+data.banner[i].banner_image);
break;
case "bsq-superior":
$("#"+data.banner[i].banner_type+" img").attr('src',flagsUrl+"/"+data.banner[i].banner_image);
break;
case "bsq-inferior":
$("#"+data.banner[i].banner_type+" img").attr('src',flagsUrl+"/"+data.banner[i].banner_image);
break;
}
}
}
},
complete: function(response) {
alert("listo");
ajax_stop();
},
//si ha ocurrido un error
error: function(data){
alert("ha ocurrido un error") ;
}
});
});`
****更新**
我已经改变了我的方法
public function cargarBannerT(Request $request)
{
$banner=$estados = DB::table("banners")->select('banner_image')->where('banner_type','=',$request->tipo)->get();
if (count($banner)>0) {
return $banner[0]->banner_image;
}
}
在这种情况下,该方法返回图像的网址&#34; 1498501452.jpg&#34;, 但是,在html中,只显示纯文本和图像损坏 &#34; SRC =&#34; ../图像/ cargarBannerT TIPO = encabezado&#34;
答案 0 :(得分:1)
正如我所看到的,您正在调用一个返回图像URL的服务。更改URL后,浏览器仍然必须从新URL下载图像并显示它们。
我认为您的 cargarBanner 服务应该重定向到图片网址。完成后,您只需直接从图像源调用服务即可。类似的东西:
<img src="cargarBanner?param1=value1¶m2=value2&..."/>
这样,浏览器就可以调用您的服务而无需执行该ajax调用