javascript - 有什么办法可以解决jq修改图片src后图片资源加载两次的问题?
高洛峰
高洛峰 2017-04-11 12:25:41
[JavaScript讨论组]

html代码:


jq代码:

$(document).ready(function () {
    $(".banner").attr("src","2.jpg");
})

jq代码生效,成功地把图片a.jpg改成b.jpg。但现在有个问题是请求资源的时候会把a.jpg和b.jpg一并加载,当图片资源比较多要替换的时候,会影响性能。有没有什么办法,在img还未加载完成之前,通过jq把src的路径修改却不加载原来的a.jpg这个图片呢?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(15)
伊谢尔伦

虽然没怎么看懂你的问题,但是我想说解决此类问题通常采用的方式是js的代理模式,参考代码如下

var myImage = (function(){
        var imgNode =document.getElementByClassName('banner')[0];
        return function(src){
            imgNode.src = src; 
        }
})();

var ProxyImage = (function(){
        var img = new Image();
        img.onload = function(){
            myImage(this.src);
        };
        return function(src) {
            myImage("a.jpg");
            img.src = src;
        }
    })();

ProxyImage("b.jpg");

原谅我原生风,你可以稍微改一下

巴扎黑
<img src="a.jpg" class="banner">
一开始这里一定要有值是吗?
阿神

如果在刚开始的<img src="a.jpg" class="banner"> 这里不需要显示图片的话 可以去掉src="a.jpg",这样就不会加载a.jpg了
代码如下:
<img class="banner">

天蓬老师

不在src里设值,设在--default里咯。

大家讲道理

一楼正解,图片延时加载

怪我咯

后来既然敢推过来,就可以在append之前拦截,修改可以

PHP中文网

从没见过这种伪需求

迷茫

你这么写当然加载2次。

阿神

无解,原图片想用又不想加载,可能不....

阿神

使用图片预加载技术

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号