Javascript 延迟背景图像并停止其缓存
我设置了一个背景图像,以显示在广告槽的位置/后面,以防广告阻塞。但是,我需要推迟到广告播出之后 我使用以下代码,但是,图像延迟的时间不够长Javascript 延迟背景图像并停止其缓存,javascript,image,wordpress,caching,delay,Javascript,Image,Wordpress,Caching,Delay,我设置了一个背景图像,以显示在广告槽的位置/后面,以防广告阻塞。但是,我需要推迟到广告播出之后 我使用以下代码,但是,图像延迟的时间不够长 <script type="text/javascript" language="JavaScript"> var resources = {div1:"url('/images/image1.png')",div2:"url('/images/image2.jpg')"}; function loadImageBG(id) { docume
<script type="text/javascript" language="JavaScript">
var resources = {div1:"url('/images/image1.png')",div2:"url('/images/image2.jpg')"};
function loadImageBG(id) {
document.getElementById(id).style.backgroundImage = resources[id];
}
</script>
var resources={div1:“url('/images/image1.png')”,div2:“url('/images/image2.jpg')”;
函数loadImageBG(id){
document.getElementById(id).style.backgroundImage=resources[id];
}
另外,如何停止缓存图像
这是一个WP站点,我正在使用WP超级缓存;我看不到插件中有任何功能可以做到这一点,尽管如此,我不确定这是否足以满足浏览器缓存的需要。一个简单、健壮的方法是使用计时器。考虑到未知广告加载时间的变幻莫测——以及它是否加载——它将不会是完美的。但这比试图确定广告何时或是否加载要简单得多 尝试以下方法:
function loadImageBG (id) {
setTimeout ( function () {
document.getElementById (id).style.backgroundImage = resources[id];
}, 888);
}
我建议不要尝试停止缓存;你不想让你的用户太烦恼 但是,一种方法是将唯一参数附加到资源URL:
function loadImageBG (id) {
setTimeout ( function () {
var d = new Date();
var milliSecs = d.getTime();
var noCacheURL = resources[id].replace (/'\)/, "?nc=" + milliSecs + "')");
document.getElementById (id).style.backgroundImage = noCacheURL;
}, 888);
}
注:
888
是以毫秒为单位的计时器延迟。出于可用性的原因,我建议不要使其大于1000
——也就是1秒noCacheURL
延迟值。因为noCacheURL
s的值是由毫秒时钟设置的,所以它的值在每次页面加载时总是不同的
因此,用户的浏览器总是会绕过用户的缓存请求新副本
如果您正在使用动态生成的映像(似乎有疑问)并缓存该服务器端,那么它的超时是一个不同的问题,您需要单独询问非常感谢。我会试着回答的。请原谅我的无知;“888”是延迟时间值吗?。另外,如何/在何处设置noCacheURL延迟值?