我读到,当您无法访问Web服务器的标头时,您可以使用以下命令关闭缓存:
<meta http-equiv="Cache-Control" content="no-store" />
Run Code Online (Sandbox Code Playgroud)
但我也读到这在某些版本的IE中不起作用.是否有任何<meta>标签可以关闭所有浏览器中的缓存?
我在S3中托管一个静态网站,并使用Cloudfront缓存文件.我基本上有3个文件,包含以下标题:
我的html文件使用查询字符串参数,每次更新我的css或js文件时都会更新.我已经配置了s3来传递这些参数,并且我已经验证它可以使缓存的资源无效.我的index.html文件看起来像这样:
<html>
<head>
...
<link rel="stylesheet" href="app.css?v=14113e2c764">
</head>
<body>
...
<script src="app.js?v=14113e2c764"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
它似乎工作得很好,因为我整天推送更新,但是当我第二天早上来并推动我的下一个更改时,index.html文件已过期.它没有正确的?v =参数,而是旧的!解决它的唯一方法是手动使html文件无效.然后一切都适用于其余的一天.第二天我又遇到了同样的问题.
这里发生了什么?
我有一些非常基本的jQuery代码:
...
$(this).find('img').load(function(){
loadedImages++;
if(loadedImages == $this.find('img').length){
...
Run Code Online (Sandbox Code Playgroud)
然而,那不是持续发射.如果我进行硬刷新或关闭我的浏览器,它会触发,但是正常刷新,或者只是在不擦除缓存的情况下两次点击相同的URL会使得.load()从不激活.
有想法该怎么解决这个吗?
我正在使用JSON文件自动填充下拉列表.它绝不是大规模的(3000行和不断增长),但刷新页面所花费的时间变得非常明显.
第一次加载页面时,将读取JSON,具体取决于用户选择的选项指示JSON的哪个部分用于填充下拉列表.
然后在每次刷新或菜单选择后加载它.是否有可能以某种方式缓存值以防止需要一次又一次地重新加载它?
谢谢.
编辑:更多信息:它本质上是一个单位转换器.JSON包含所有细节.例如,当用户选择"Temp"时,进行呼叫并填充列表.一旦转换完成后,你可以整天运行温度的转换,他们将被罚款,但每次用户所以现在改变转换类型长度,页面刷新,并花费的时间显着量.
在我制作的网站上,我通常使用查询字符串参数使css和js的缓存无效.像这样:
注意:这是chrome检查器的屏幕截图,这些查询字符串全部由我在渲染到浏览器时制作的一个小系统自动附加.
一位朋友现在告诉我,使用查询字符串不会像文件名本身或文件名之前的路径中的某个位置那样缓存.他还发了一篇文章,在这里他们主要谈论人们使用代理时的糟糕表现.
但是,这篇文章是8岁.我想知道,它仍然是一个有效点吗?我应该关心吗?这真的是一种不好的做法吗?
干杯,
Wouter
可能是一个愚蠢的问题,但我搜索了很多没有结果.我知道如何在服务器响应中设置缓存控制,但是如何在ajax请求中更改缓存控制的值?注意:我希望浏览器使用它的缓存.不希望它从服务器获取更新的json ..这是我想要做的全部事情.
为什么有些人写这个:
shop/js/uds-jsonp.js?ver=2.70
Run Code Online (Sandbox Code Playgroud)
代替
shop/js/uds-jsonp.js
Run Code Online (Sandbox Code Playgroud)
我有?ver=2.70或没有检查资源,?ver=2.70我没有看到任何差异.
看看这个简单的JSFiddle(忽略所有的 javascript 代码,这里的问题只是关于动画加载 GIF)。
我想在提交表单之前显示动画加载 GIF。
我试过这个:
setTimeout(function(){
$('form[name="checkout-form"]').submit();
},1000);
Run Code Online (Sandbox Code Playgroud)
这工作正常,动画加载 GIF 显示 1 秒,但是,一旦发送提交请求,它就会停止动画。
我需要做什么才能让 GIF 动画直到页面再次加载(或者直到响应从页面返回?)
在我的项目中,我需要做缓存破坏,因为在新部署之后,浏览器通常只重新加载 HTML 而不是 JS 和 CSS 文件。
目前,我没有以任何方式构建 HTML,它只是已经位于公共目录中。
最简单的方法似乎是在 JS 引用中添加时间戳:
<script type="module" src="bundle/index.js?ts=20201026-102300"></script>
Run Code Online (Sandbox Code Playgroud)
现在,在已经使用rollup.js的项目中实现这一目标的最佳方法是什么?
我见过@rollup/plugin-html,但我对其文档中的示例感到困惑,因为它需要一个 JS 文件作为输入:
input: 'src/index.js',
Run Code Online (Sandbox Code Playgroud)
那应该是什么JS文件?
相反,我希望需要定义
那么最好的方法是什么,是使用@rollup/plugin-html还是其他方法?