使用预加载器加载div的内容而不使用缓存

时间:2014-01-19 11:52:05

标签: javascript caching preloader

我有一个简单的预加载器:

<script type="text/javascript">
        function preloader(){
            document.getElementById("mioperspreloader").style.display = "none";
            document.getElementById("mioperswrapper").style.display = "block";
        }//preloader
        window.onload = preloader;
</script>

我第二次重新加载我的网页预加载器从缓存加载数据,但我不想要! 你能帮助我吗? 感谢

1 个答案:

答案 0 :(得分:1)

假设您在预加载器中有一个图像,并且想要阻止它进行缓存,那么您必须更改网址,如:

    function preloader(){
        document.getElementById("mioperspreloader").style.display = "none";
        document.getElementById("mioperswrapper").style.display = "block";
        var img = document.querySelector("#mioperspreloader img.preloader");
        img.src = /images/preloader.png?__nocache__=" + new Date().valueOf();
    }

这样你就可以更改url,这是缓存的关键。

但是你的预加载器中可能有多个图像,甚至是ajax json响应,如果你想阻止所有这些图像进行缓存,那么就为网址执行此操作。

你说过

  

预加载器从缓存中加载数据

并且加载数据可能意味着你有ajax调用,然后添加一个时间戳或你可以提出的任何唯一字符串,作为你的ajax调用url的nocache查询字符串。

jQuery解决方案: 如果您使用wordpress或其他使用jQuery的框架,您也可以为您的ajax调用执行此操作:

$(document).ready(function() {
    $.ajaxSetup({ cache: false });
});

如果要禁用缓存,仅针对特定阶段,则必须使用cache: true运行相同的代码,以返回正常模式:

$.ajaxSetup({ cache: true });