【问题标题】:Optimize jquery image load优化jquery图片加载
【发布时间】:2017-12-02 07:33:13
【问题描述】:

我已经创建了一个图像管理器,并且我正在使用 jquery 加载每个 url,但是,当我更改 ajax 请求中的“src”属性时,图像需要几秒钟才能出现在浏览器中,我试图放置一个微调器并等待一旦请求加载就显示所有内容,但是,如果我检查 'src' 属性,则 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;

        }


    }

在这种情况下,该方法返回图像“1498501452.jpg”的url, 但是,在 html 中,只出现纯文本,并且图像损坏 "src="../images/cargarBannerT?tipo=encabezado"

【问题讨论】:

    标签: jquery image image-uploading image-gallery


    【解决方案1】:

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

    我认为您的 cargarBanner 服务应该重定向到图片 URL。一旦你这样做了,你只需要直接从你的图像源调用服务。比如:

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

    这样,浏览器将调用您的服务,而无需进行 ajax 调用

    【讨论】:

    • 嗨,我已经解决了它的工作方法,但它没有返回任何内容,它已将 src 中的文本识别为字符串而不是图像的名称
    • 我需要你描述你的 cargarBanner 服务的输入参数和输出,让我了解发生了什么
    • 我想 $banner[0]->banner_image 是一个字符串。如果这是真的,该方法应该转发到该图像 url 而不是返回该字符串。看看这个:stackoverflow.com/questions/768431/…
    • 但是即使我加了""../images/",还是不行,你觉得是这个原因吗?
    • HTML 标记在其“src”属性中期望返回图像的 url,而不是字符串。您的 cargarBanner 方法应该从数据库中获取图像 URL,然后重定向到它而不是返回字符串。我认为这应该可行:stackoverflow.com/questions/768431/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    相关资源
    最近更新 更多