img 标签src属性为空有两种情况,一种是基本的HTML:
<img src="" />
另外一种是在 JavaScript 里面:
var img = new Image();
img.src = "";
无论哪种情况,都会向服务器多做一次请求。
在IE中,这样做会请求一次当前页面所在的目录。如在http://playgoogle.com/demo/a.html 中出现这种空src的标签,会导致重新请求一次://playgoogle.com/demo/
在Safari 和 Chrome中,将请求当前页面本身。
在Firefox 3.5以前的版本中,有和Safari同样的问题,但是在3.5中修正了这个BUG。
在Opera 中,不会做额外的请求。
这些额外的请求会引发什么问题呢? 首先就是可能触发一些意向不到的逻辑,而且这种BUG很难调试。另外,由于增加了对页面的请求,也增加了对服务器资源的消耗。
其他的标签中的空src会不会导致这样的问题?
好消息是,在IE中只有image标签有这个问题。坏消息是,在Chrome, Safari, 和 Firefox中<script src="">
和<link href="">
都会导致出现一个新的请求。
如何解决这个问题?
可以从两方面着手,一是尽量避免这种坏的编程方式,不要出现空的src标签。另外,可以从服务器端着手,在发现时这种无意义的请求时不要返回任何东西给客户端。