如何避免重复的http请求
展开全部
IE7,IE8已经修复了这个bug。 可通过添加一段javascript脚本来解决这个问题<script type="text/javascript">try { document.execCommand('BackgroundImageCache', false, true); } catch(e) {}</script> document.execCommand 还有很多其他用法,网上资料很多,感兴趣的可以看看 二、innerHTML需要注意“+=”操作符 首先解释一下innerHTML+=是如何工作的 var box=document.getElementById("box");
box.innerHTML = "a";
box.innerHTML += "b"; 这个过程相当于 var box=document.getElementById("box");
box.innerHTML = "a";
box.innerHTML = "";
var c= "a"+"b";
box.innerHTML+= "<img src='exam.jpg'>" 最终请求的是3个图片,而不是6个 测试的时候,请将内容放到window.onload中,如果在页面没有加载完成前调用这个,假设页面上有同样的img,则页面上会直接读缓存 实验显示:这个合并个数有上限,上限个数不清楚(可能和机器配置,ie版本等有关),超过上限后如何操作不清楚 2、当回调操作中使用innerHTML+=操作时,ie不向服务器请求资源eg:var handle=setInterval(function(){insert();},500);
} 这样用法没有向服务器发请求 总结:innerHTML += 的问题只在IE中会出现,解决的问题可以使用IE下的insertAdjacentHTML方法代替 insertAdjacentHTML 方法是将新内容直接追加到原有内容的后面,而不是清空innerHTML的内容再重复赋值,这样可以避免原innerHTML中的图片被重新加载的问题 三、少用location.reload()使用location.reload() 会刷新页面,刷新页面时页面所有资源(css,js,img等)会重新请求服务器建议使用:location.href="当前页url" 代替location.reload() ,使用location.href 浏览器会读取本地缓存资源
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询