zoukankan      html  css  js  c++  java
  • javascript:location.reload()和location.replace()的区别,及对图片缓存的影响。

    有段时间没有清理IE的临时文件(缓存文件),在我清理的时候,我突然发现一个问题。

    我打开的一个网站,图片默认缓存一个月的,但我发现,当我上传图片或删除图片之后,图片重新缓存,也就意味着,在我上传新图片或删除图片的时候,页面上所有原来的图片都重新载入,重新缓存了。

    从这一点上看,图片本身的缓存一点意义都没有了。

    我查看了网页的javascript代码,发现在上传或删除的之后,调用的是 location.reload();

    难道说,这个location.reload()不仅重新载入页面,而且页面里的所有资源也将重新载入。

    我到网上搜索了一下,说这个location.reload(boolean state); 有个参数可选,默认是false。

    可经过我的测试不管是:location.reload() 还是 location.reload(true) 都会在刷新页面的时候,重新载入页面里所有的图片。就像他们的介绍所说,location.reload()相当于在网页上按了 F5键刷新。

    可我目前的这个应用,只希望刷新页面内容,同时不要让之前已载入的缓存图片重新再次载入。

    这个很重要,如果每次刷新都重新载入所有的图片,这对服务器来说,将会非常的浪费带宽和资源。

    我在网上也看到另一种刷新页面的方式:location.replace();

    window.location.reload() 或 document.location.reload(); //2种方式

    我测试了一下,将 location.replace() 替换原来的 location.reload()之后,就可以达到更新页面内容的同时不再重新加载之前IE缓存中已存在的图片,这样图片本身的缓存才有意义。

    2010-11-06

  • 相关阅读:
    浅谈Vue基础知识(二)
    浅谈Vue基础知识(一)
    ES 6
    网易DBA私享会分享会笔记2
    网易DBA私享会分享会笔记1
    centos6.5适用的国内yum源:网易、搜狐
    如何去除 ckeditor 上传图片后在原码中留下的 style="width: 100%;height:100px"之类的代码呢?
    关于json.ajax ,php的那点事
    去掉所有的html标签
    [CentOS 0010] CentOS 配置mysql允许远程登录
  • 原文地址:https://www.cnblogs.com/personnel/p/4583025.html
Copyright © 2011-2022 走看看