优化jquery图像加载

时间:2017-06-28 19:20:48

标签: jquery image image-uploading image-gallery

我已经创建了一个图片管理器,我正在使用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;

1 个答案:

答案 0 :(得分:1)

正如我所看到的,您正在调用一个返回图像URL的服务。更改URL后,浏览器仍然必须从新URL下载图像并显示它们。

我认为您的 cargarBanner 服务应该重定向到图片网址。完成后,您只需直接从图像源调用服务即可。类似的东西:

<img src="cargarBanner?param1=value1&param2=value2&..."/>

这样,浏览器就可以调用您的服务而无需执行该ajax调用