我的网站上有一副图片,是以背景图片的形式加上去的,而且是CSS调用的方式。<link href="x.css" rel="stylesheet" type="text/css">  .x{background:url(1.jpg)}, 这幅图片呢,每天都要更新的,但是由于IE缓存,实际上在IE浏览器上它并不显示更新(除非按ctrl+F5),在其他浏览器上浏览时正常。上次发过类似的帖子,ID为lsw645645645的兄弟给出个方法,就是用JS给图片地址加上随机数,但是我发现这样还是不行,因为IE缓存的太厉害了,它把x.css和1.jpg全都缓存了,下次即使我换成2.jpg,IE还是会顺着缓存的x.css到缓存里找1.jpg,并显示1.jpg. 我想要是能给这个x.css加上随机数就好了,IE调用新的x.css,应该就会更新图片。可惜我不会具体的代码,也不知道这个思路对不对,CSDN高手如云,一定有人知道,谢谢大家了!

解决方案 »

  1.   

    据称:
    try {
      document.execCommand('BackgroundImageCache', false, true);
    } catch(e) {}
    是要求IE缓存图片,既然你是要它缓存图片,试试更改后面的 true.
    本答复未作测试.
      

  2.   

    你这个思路挺对的 :)再优化一点,不要用“随机数”,那样会导致客户端太多垃圾缓存,应该使用“版本戳记”,也就是说,每次网站发布新的源代码时就产生一个新的戳记。具体的 HTML 代码形式大概是这样的:<link href="x.css?s=201106200938" rel="stylesheet" type="text/css">
    .x{background:url(1.jpg?s=201106200938)}
      

  3.   

    我是想不更改html代码,直接更改那个x.css就能达到更改背景图片的办法,当初这样写的也是为了省事,现在弄巧成拙,陷入死胡同。看来要重新设计了谢谢大家的支持,CSDN永远是最棒的!
      

  4.   

    那就这样嘛
    <html>  
    <head> 
    <link id="css" rel="Stylesheet" type="text/css"/> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('#css').attr({ href: 'css.css?' + Math.random() * 1000 + ')' });
        });
    </script>
    </head>  
    <body>  
    <div id="img">背景图片</div>
    </body>  
    </html>