【发布时间】:2013-11-24 07:06:53
【问题描述】:
我正在显示这样的图像:
<img src="placeholder.jpg" data-url="/get_image/{{image.id}}/" />
/get_image/{{image.id}} 返回一些带有实际图像 URL 的 JSON,然后我使用 jQuery 替换 <img> 标记的 src 属性。
我遇到的问题是图像只有在完全下载后才会显示在浏览器上。对于大图像,这可能需要一段时间,并且一些用户认为图像永远不会加载,尽管placeholder.jpg 说“正在加载...”
如果替换占位符的图像实际上可以明显加载(例如像大多数 JPEG 一样从上到下),而不是在 全部下载 时突然显示,那就太好了。
显示进度条的方式会更好。
有人有建议吗?
【问题讨论】:
-
你用什么来获取这些数据?
<img src="" id="yourimage"/>尝试 ajax 并使用beforeSend : function(){ $("#yourimage").attr("src","url to your loading image"); }并完成complete : function(data){ $("#yourimage").attr("src","data"); } -
@Vinh 这几乎就是我已经在做的事情......我的 placeholder.jpg 说“正在加载”。但是在加载图像时没有任何移动,然后突然出现。如果是 5 MB 的图像,在慢速连接上可能需要数十秒,并且用户认为出现问题。
-
我不知道,可能是您的加载是
JPG类型而不是GIF类型然后这就是为什么。如果您使用 ajax,则无需将 data-url 放入<img>标签中。我使用的方式是:$.ajax({ url: "your url", global: false, type: "POST", data: {}, cache: false, beforeSend: function() { $("#yourimage").attr("src","loading.gif"); //loading.gif for ex }, success: function(data) { $("#yourimage").attr("src","data"); } } -
使您的图像成为 渐进式 jpeg。
标签: javascript jquery html image jpeg