img标签src为空引发两次请求页面的问题

本文探讨了在ASP.NET MVC网站开发过程中,当页面包含<img src=/>元素时,可能导致页面在加载时被调用两次的问题。通过分析不同浏览器的表现,揭示了这一现象的原因,并提供了避免该问题的方法。
摘要由CSDN通过智能技术生成

最近一直在asp.net mvc下开发网站,今天碰到了很让人郁闷的问题。 我一个Controller里的 action在页面加载时被调用了2次。

起初怀疑JS问题,但屏蔽调JS后,问题依旧。没办法,把页面里的内容分别屏蔽的找了半天原 因,最终发现是因为 页面含有一个<img src="">。

 

   <html>
   <body>

    ...其他服务器端代码...
   <img src="" />
    ...其他服务器端代码...
   </body>
   </html>

 

当调用这个页面的URL 的时候,会发现,网页被调用了2次。如果该访问该网页的URL 还带有参数,那么第一次调用有参数,第二次调用没有参数。

Google了下,发现具体原因是,在img 对象的src 属性是空字符串("")的时候,浏览器认为这是一个缺省值,值的内容为当前网页的路径。浏览器会用当前路径进行再一次载入,并把其内容作为图像的二进制内 容并试图显示。

对于不同的浏览器测试后,发现对于有无src 或者src 是否为空的情况,还不尽相同,测试结果如下表。

 

代码FirefoxIE6IE7
<img src="" />会重复载入会重复载入会重复载入
<img src />会重复载入正常正常
<img />正常正常正常

 

以后如果图片路径后来才赋值的,一定注意这个问题,不要加上src=""。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值