如何让前端浏览器不进行缓存

摘要:
当浏览器想要访问某个资源时,浏览器会通过资源的URL判断是否读取缓存中的内容。由于浏览器具有缓存,服务器上的内容将被修改,但浏览器显示不会更改。它的功能是使浏览器错误地接收到新链接的请求,从而使浏览器不会读取缓存中的内容--设置为不缓存页面--˃test”);缺点:因为缓存可以减少对服务器的直接访问,并减轻服务器的压力。

当浏览器要访问一个某个资源时,浏览器会通过资源的URL来判断是否读取缓存中的内容。由于浏览器存在缓存,所以会导致服务器上的内容修改了,但是在浏览器却显示没有变化。

为了解决这个问题,可以在每次请求的时候加一个随机数参数或者时间戳。它的作用就是让浏览器误以为请求的是一个新链接,这样浏览器就不会去读取缓存里的内容。

代码如下:

    <!DOCTYPE html>
    <html>
     
        <head>
            <meta charset="utf-8" />
            <!--设置过期时间设置0为直接过期并清除缓存-->
            <meta http-equiv="Expires" content="0">
            <!--设置不缓存页面-->
            <meta http-equiv="Pragma" content="no-cache">
            <!--设置不修改消息存储-->
            <meta http-equiv="Cache-control" content="no-cache">
            <!--同上-->
            <meta http-equiv="Cache" content="no-cache">
            <title>test</title>
        </head>
        <body>
            <div id="test">
            </div>
        </body>
        <script type="text/javascript">
            //js后缀加个时间戳每回更新都会改变,浏览器视其为新的js不会进行缓存
            document.write('<script type="text/javascript" src="http://t.zoukankan.com/js/test.js?time='+new Date().getTime()+'"><'+'/'+'script>');
            //css也同上
            document.write('<link rel="stylesheet" href="http://t.zoukankan.com/css/test.css?time=' + new Date().getTime() + '"/>');
        </script>
    </html>

弊端:因为缓存可以减少对服务器的直接访问,减少服务器的压力。浏览器不读取缓存里的内容之后,每次都会访问服务器,这样就会增加服务器的压力。
---------------------  
作者:Roger_CoderLife  
来源:CSDN  
原文:https://blog.csdn.net/Roger_CoderLife/article/details/83021360  
版权声明:本文为博主原创文章,转载请附上博文链接!

免责声明:文章转载自《如何让前端浏览器不进行缓存》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Gin框架软件测试人员必备的32个网站清单,果断收藏了!下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ThinkPHP模板(一)

如何关闭ThinkPHP的模板缓存 ThinkPHP的模板缓存是无奈关闭的,因为内置的模板引擎是一个编译型的模板引擎,必须经过编译后生成一个可执行的缓存文件才能被执行。但是可以设置缓存的有效期,例如设置 ‘TMPL_CACHE_TIME’ =>3, // 模板缓存有效期 -1 永久 单位为秒 这样,每隔3秒系统会自动重新编译模板文件。默认的配置是-1...

JS代码收藏大全

从其他地方找来的,希望对有需要的人带来方便! 1. oncontextmenu="window.event.returnvalue=false" 将彻底屏蔽鼠标右键<table border oncontextmenu=return(false)><td>no</table> 可用于Table 2. <body o...

flashcache 介绍

rpm:   flashcache-utils-0.0-4.1.el6.x86_64   kmod-flashcache-0.0-3.el6.x86_64 基本介绍:   Flashcache是Facebook技术团队开发的一个内核模块,通过在文件系统(VFS)和设备驱动之间新增一次缓存层,可以用SSD作为介质的缓存,通过将传统硬盘上的热门数据缓存到SSD...

Python Flask获取iOS的UDID

测试iOS app时候,我们可以安装以下4种类型的包 : AdHoc                 -- 一般为正式环境验证AppStore             -- 上传AppStore,只有appstore审核通过发布出来后才能安装Development       -- 一般为测试环境验证Enterprise            -- 企业证...

mybatis学习 十一 缓存

1. 应用程序和数据库交互的过程是一个相对比较耗时的过程2. 缓存存在的意义:让应用程序减少对数据库的访问,提升程序运行效率3. MyBatis 中默认 SqlSession 缓存(一级缓存)开启   同一个 SqlSession 对象调用同一个<select>时,只有第一次访问数据库,第一次之后把查询结果缓存到 SqlSession 缓存区(...

mysql实战笔记

笔记来源于mysql实战,却高于它 查询语句执行流程 MySQL可以分为Server层和存储引擎层两部分。 Server层:所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。 而存储引擎层负责数据的存储和提取。支持InnoDB、MyISAM、Memory等多个存储引擎。InnoDB从My...