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

  • 相关阅读:
    WIDER Face 转为 COCO 格式标签
    latex转word
    No CUDA runtime is found, using CUDA_HOME='/usr/local/cuda'
    COCO数据集使用super categories时出现IndexError: list index out of range
    VS Code 中 torch has no xxx member
    Anaconda中安装Cascade RCNN(Detectron)的若干问题
    fatal error: nvcuvid.h: No such file
    hive一些语句
    端口号
    hadoop错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster
  • 原文地址:https://www.cnblogs.com/personnel/p/4583025.html
Copyright © 2011-2022 走看看