2011-09-28 33 views
3

我在<div>内有一组图像。出于安全目的,所有这些图像通过302而不是200服务(基于认证的servlet服务图像)。jQuery的克隆()和302图像源 - 如何避免在Firefox重新加载?

我想克隆<div>并将其追加到另一个容器。

在Firefox以外的所有浏览器中这样做时,图像不会重新加载。看来这些浏览器了解它是相同的图像。

在Firefox中,每个图像在克隆/追加后重新加载。我想避免这种情况。有没有人有任何建议如何?

更新了代码示例:

<div> 
    <p><button type="button" id="btn1">Clone 1</button> <button type="button" id="btn2">Clone 2</button></p> 
</div> 

<div id="group1"> 
    <div id="imgs"> 
     <p><img src="https://example.com/image/9c90434ed657427dad29"></p> 
     <p><img src="https://example.com/image/977b5dfe5e064880b164"></p> 
     <p><img src="https://example.com/image/8f22d7fd2a2343ab99c9"></p> 
     <p><img src="https://example.com/image/898c022e20b742c88ae6"></p> 
     <p><img src="https://example.com/image/8319fe1d23064b5d8011"></p> 
    </div> 
</div> 

<div id="group2"></div> 

<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#btn1").click(function(){ 
      $("#imgs").clone().appendTo("#group1"); 
     }); 
     $("#btn2").click(function(){ 
      $("#imgs").clone().appendTo("#group2"); 
     }); 
    }); 
</script> 
+1

你有代码示例吗? –

+0

当然。我用一个代码示例编辑了我的原始文章。关键是,在Firefox中,当你克隆'div#imgs'并追加图像时,所有的重新加载。在所有其他浏览器中,它们都没有。同样重要的是要注意,所有这些图像都作为302重定向用于身份验证目的(它是一个具有资产隐私的企业应用程序)。我的目标是在我们寻找302的替代方案之前查看是否有jQuery解决方案。谢谢。 – Kgosser

+0

另外值得注意的是:如果将clone()更改为detach(),则图像不会在Firefox中重新加载。 – Kgosser

回答

0

尝试增加预取标签为Firefox用户。我相信FF仍然支持预取关系;他们确实想出了它。

<link rel="prefetch" src="https://example.com/image/9c90434ed657427dad29"> 
<link rel="prefetch" src="https://example.com/image/977b5dfe5e064880b164"> 
<link rel="prefetch" src="https://example.com/image/8f22d7fd2a2343ab99c9"> 
<link rel="prefetch" src="https://example.com/image/898c022e20b742c88ae6"> 
<link rel="prefetch" src="https://example.com/image/8319fe1d23064b5d8011">