标签: browser-cache

烧瓶中的浏览器缓存问题

我使用flask建立了一个网站(www.csppdb.com).有时当我以一个用户身份登录时,注销,然后以另一个用户身份登录,我仍然会看到我登录的第一个用户的页面.刷新页面时会立即解决此问题.如果我没有弄错的话,我认为这被称为"缓存".有什么办法可以在网站级别禁用此功能,以便访问的每个页面都需要重新刷新?

这就像与朋友分享您的计算机.他登录Facebook,然后退出.现在你登录他的电脑,你看到他的个人资料......(尴尬).刷新页面后问题得到解决.

这是我的一些代码.我正在使用烧瓶登录,但后来我尝试"自己滚动"

from flask.ext.mysql import MySQL
import os
from flask import Flask, request, jsonify, session, url_for, redirect, \
     render_template, g, flash
from data import *
from werkzeug import check_password_hash, generate_password_hash
import config

app = Flask(__name__)
mysql = MySQL()

app.config['MYSQL_DATABASE_HOST'] = os.environ['MYSQL_DATABASE_HOST'] if 'MYSQL_DATABASE_HOST' in os.environ else config.MYSQL_DATABASE_HOST
app.config['MYSQL_DATABASE_PORT'] = os.environ['MYSQL_DATABASE_PORT'] if 'MYSQL_DATABASE_PORT' in os.environ else config.MYSQL_DATABASE_PORT
app.config['MYSQL_DATABASE_USER'] = os.environ['MYSQL_DATABASE_USER'] if 'MYSQL_DATABASE_USER' in os.environ else config.MYSQL_DATABASE_USER
app.config['MYSQL_DATABASE_PASSWORD'] = os.environ['MYSQL_DATABASE_PASSWORD'] if 'MYSQL_DATABASE_PASSWORD' in os.environ else config.MYSQL_DATABASE_PASSWORD
app.config['MYSQL_DATABASE_DB'] = os.environ['MYSQL_DATABASE_DB'] …
Run Code Online (Sandbox Code Playgroud)

python caching browser-cache flask

20
推荐指数
1
解决办法
2万
查看次数

要求浏览器缓存我们的图像(ASP.NET/IIS)

我刚刚针对我们的网站运行了Google的Page Speed应用程序,其中一项建议是利用浏览器缓存.扩大这一点揭示了以下内容:

以下可缓存资源的生命周期较短:为以下资源指定将来至少一周的到期时间:

<>
<一些javascript文件的图片列表>

如何延长特定图像的"新鲜度"?

它是在IIS7.5上运行的ASP.NET项目

browser asp.net iis caching browser-cache

19
推荐指数
1
解决办法
2万
查看次数

使用Cache还是CDN更好?

我正在研究加载静态文件时的浏览器性能,这种疑问已经到来.

有人说使用CDN静态文件(即谷歌代码,jQuery最新,AJAX CDN ......)对性能更好,因为它从另一个域请求而不是整个网页.

提高性能的其他方法是将Expires标头设置为等于几个月后,强制浏览器缓存静态文件并减少请求.

我想知道哪种方式是最好的,考虑性能以及我是否可以将它们结合起来.

先谢谢你们,我喜欢StackOverflow.

performance cdn browser-cache

19
推荐指数
2
解决办法
3万
查看次数

发布新的 Vue 应用程序版本时如何强制清除 chrome 中的缓存

我创建了一个应用程序,vue-cli然后我构建了dist用于生产的文件夹。

该应用程序IIS使用 Flask 后端部署并且运行良好。

当我必须进行一些更改并且必须重做部署时,就会出现问题。在此之后,用户打电话给我,因为应用程序不起作用,但如果我清除了 chrome 缓存,应用程序又可以正常工作了。

我该如何解决这个问题?当我发布新的应用程序版本时,是否有自动清除 Chrome 缓存的方法?

谢谢

我的 dist 文件夹

在此处输入图片说明

部署:在 IIS 上复制和粘贴文件夹 dist

如果 dist 文件夹中的文件正确,可能问题出在 axios 缓存中?我也做了一些改变来休息 apis

caching cache-control browser-cache vue.js vuejs2

19
推荐指数
3
解决办法
3万
查看次数

正确的方法来处理304未在jQuery ajax中修改

从jQuery 1.5开始,根据XMLHTTPRequest的W3C规范,ajax方法现在可以通过调用success()处理程序正确处理304 Not Modified响应.这允许您的应用程序将请求视为成功,即使服务器实际上没有返回任何数据(因为您已经缓存了最新数据).

对于正常(未缓存)的GET请求,使用以下args调用成功处理程序:

  • data:{来自服务器的数据}
  • 状态:好的
  • jqXHR:
    • 状态:200
    • statusText:好的
    • responseText:{来自服务器的数据}

对于缓存的GET请求,使用以下args调用成功处理程序:

  • 数据:未定义
  • 状态:未修改
  • jqXHR:
    • 状态:304
    • statusText:notmodified
    • responseText:{来自缓存的数据}

(至少,这是在IOS 4.2中返回的方式,对于通过清单文件使用应用程序缓存的Web应用程序.我认为这对于大多数平台/浏览器上的常规浏览器缓存是一致的).

您可以看到,如果请求为200 OK,则仅填充"data"参数; 其中jqXHR.responseText总是填充数据,无论该数据是来自服务器(200 OK)还是来自缓存(304 Not Modified).

鉴于此,在大多数GET请求中,您的成功处理程序将要对您获得的数据执行某些操作,而不管它来自哪里,对于您的成功代码来说,最好总是使用jqXHR.responseText,而不是做这样的事情:

if ("notmodified" === status) {
  // do something with jqXHR.responseText
} else {
  // do something with data
}
Run Code Online (Sandbox Code Playgroud)

或者是否有一种情况,jqXHR.responseText 不会在成功处理程序中填充,但数据arg

我必须通过我的代码库并更改所有成功处理程序(以前我在jQuery 1.4.2上,它总是返回数据,甚至从缓存中返回); 所以我只是想确保我以正确的方式处理它.(不要想达到目的,然后意识到我应该以另一种方式做到这一点).

jquery browser-cache

18
推荐指数
2
解决办法
2万
查看次数

导航后退/卸载事件未触发时,iOS 5 Safari中的页面缓存问题

tl; dr - iOS 5上的Safari缓存非常困难,它打破了我的网站.

我正在努力解决iOS 5中的Safari浏览器处理后向缓存的问题,他们称之为"页面缓存".这里描述的方式非常好地解释了这种行为.

很简单,页面缓存使得当你离开页面时我们"暂停"它,当你回来时我们按下"播放".

这会导致整个网站出现问题.使用后退按钮时,大多数其他浏览器会以加载状态显示页面.不是iOS 5上的Safari,它会显示您上次离开时​​的页面.一个简单的例子是禁用提交按钮.如果我使用Javascript来禁用提交按钮,然后提交表单,当您单击后面的提交按钮仍将被禁用.这在其他浏览器中是一个问题,包括Safari的桌面版本,但是通过将onload事件处理程序设置为空函数来解决它.我相信这告诉浏览器使缓存无效,因为在该函数中可能发生了一些重要的事情.这个hack似乎不适用于iOS 5上的Safari.

以下是问题归结为最基本的问题.加载test.html时,您将看到文本"原始文本".当您单击该链接时,该文本将更改为"更改文本 - 转发到下一页",然后在3秒内您将转发到test2.html.在所有浏览器中,一切都很好.在所有其他浏览器中,当您单击后退按钮时,您将看到的文本是"原始文本",但在Safari for iOS 5上,您将看到"更改文本 - 转发到下一页".

有关如何处理这个的任何建议?

这是一个简单的例子

的test.html

<script>
function changeText() {
    el = document.getElementById("text");
    el.innerHTML = "Changed text - forwarding to next page";
    setTimeout("forward()",3000);       
}
function forward() {
    document.location.href = "test2.html";
}
</script>
<div id="text">Original Text</div>
<a href="Javascript:changeText()">Click Here</a>
<script>
window.onunload = function(){};
</script>
Run Code Online (Sandbox Code Playgroud)

test2.html

<div>Click back button</div>
Run Code Online (Sandbox Code Playgroud)

这是使用表单的第二个示例.这是我的应用程序如何工作的一个简单示例.当您导航回formtest2.asp时,您应该看到已发布的表单值,div文本应该是原始的.

formtest.asp

<form method="post" action="formtest2.asp">
    Test: <input type="text" name="test"/>
    <input type="submit" value="Submit"/>
</form>
Run Code Online (Sandbox Code Playgroud)

formtest2.asp

<script> …
Run Code Online (Sandbox Code Playgroud)

javascript mobile-safari browser-cache ios5 web

18
推荐指数
2
解决办法
2万
查看次数

IIS 7.5和图像未被缓存

我无法将图像文件缓存.我已尝试过在本网站和其他网站上找到的所有内容,但仍然无法让它们缓存.

我尝试过的Web配置设置

    <staticContent>
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
    </staticContent>
    <httpProtocol allowKeepAlive="true" />


    <caching enabled="true" enableKernelCache="true">
    <profiles>
    <add extension=".png" policy="CacheUntilChange" />
    <add extension=".jpg" policy="CacheForTimePeriod" duration="12:00:00" />
    </profiles>
    </caching>  
Run Code Online (Sandbox Code Playgroud)

以下是其中一个图像的响应标题

    Key Value
    Response    HTTP/1.1 200 OK
    Cache-Control   no-cache
    Content-Type    image/png
    Last-Modified   Thu, 16 Dec 2004 18:33:28 GMT
    Accept-Ranges   bytes
    ETag    "a1ca4bc9de3c41:0"
    Server  Microsoft-IIS/7.5
    X-Powered-By    ASP.NET
    Date    Fri, 18 May 2012 13:21:21 GMT
    Content-Length  775
Run Code Online (Sandbox Code Playgroud)

iis caching browser-cache iis-7.5

18
推荐指数
1
解决办法
2万
查看次数

仅在脱机时使用ServiceWorker缓存

我正在尝试将服务工作者集成到我的应用程序中,但我发现服务工作者即使在线也尝试检索缓存内容,但我希望它在这些情况下更喜欢网络.我怎样才能做到这一点?下面是我现在的代码,但我认为它不起作用.为简洁起见,省略了SW安装代码.

var CACHE_NAME = 'my-cache-v1';
var urlsToCache = [
  /* my cached file list */
];

self.addEventListener('install', function(event) {
  // Perform install steps
  event.waitUntil(
    caches.open(CACHE_NAME)
      .then(function(cache) {
        console.log('Opened cache');
        return cache.addAll(urlsToCache);
      })
  );
});

/* request is being made */
self.addEventListener('fetch', function(event) {
  event.respondWith(
    //first try to run the request normally
    fetch(event.request).catch(function() {
      //catch errors by attempting to match in cache
      return caches.match(event.request).then(function(response) {
        // Cache hit - return response
        if (response) {
          return response;
        }
      });
    })
  );
}); …
Run Code Online (Sandbox Code Playgroud)

javascript browser-cache web-worker service-worker

18
推荐指数
3
解决办法
1万
查看次数

如何在我浏览器中新选项卡上显示的最近使用的网站列表中控制我网站的屏幕截图

像Firefox和Chrome这样的浏览器会拍摄被访问网站的屏幕截图,并可以在新标签上显示为"最近使用过的网站".

由于我的网站显示机密信息,我怎么能避免浏览器为"最近的网站"列表拍摄屏幕截图,或者至少将其限制在登录页面(如Facebook或银行网站正在做什么)?

我找到了一个可能的答案是否有W3C标准元标记来确定用于表示网站的封面图像?但它似乎仍然是一个不稳定的方法,我调查的银行网站显然没有使用它,所以我怀疑还有另一个(更好的?)解决方案.

任何的想法?我需要它至少为Firefox工作.

注意:网站正在使用HTTPS.在Chrome下,使用HTTPS似乎可以解决此问题,因为空白屏幕显示为预览.即使使用HTTPS,Firefox也会显示它.

更新: 在Mozzila的支持页面https://support.mozilla.org/en-US/kb/thumbnails-new-tab-page-missing-how-get-them-back上,他们声明如下:

注意:某些网站不允许生成和保存图像( - >缩略图)

不幸的是他们没有告诉他们怎么做......但是似乎有办法避免它......

更新2: 我真正想要的是该网站使用缓存的Javascript和图像,但不是缩略图.使用HTTPS可以解决它,除了因为Firefox的bug.

html firefox screenshot thumbnails browser-cache

18
推荐指数
2
解决办法
537
查看次数

如何清除Firefox中的Service Worker缓存?

在Chrome中,可以从开发工具中清除Service Worker缓存.

我们怎样才能在Firefox中实现这一目标?

我到目前为止尝试过:

  • 取消注册服务 about:serviceworkers
  • 清空下的缓存 about:preferences#privacy
  • 用来重新加载页面 Ctrl + F5

但它还在那里......

firefox browser-cache service-worker

18
推荐指数
4
解决办法
1万
查看次数