【问题标题】:Can I delete file from temporary internet files in javascript?我可以从 javascript 中的临时 Internet 文件中删除文件吗?
【发布时间】:2009-03-26 08:17:43
【问题描述】:

我有一个页面需要在 onload 事件上下载图像文件,但是对于所有页面调用!现在,它在第一次调用中下载图像,但在第二次调用中它是从临时获取的,这不是我想要的。我需要为每个负载做一些计算。所以我想删除我在每次加载时从临时或其他强制客户端再次从服务器下载它的文件下载的文件。

JavaScript 解决方案会很棒。谢谢。

【问题讨论】:

    标签: javascript file-io


    【解决方案1】:

    不,您无法使用 Javascript 对缓存执行任何操作,但您可以更改图像的 url,使其不在缓存中。

    只需在图片的url中添加一个查询字符串,每次都使用当前时间使其唯一:

    <script type="text/javascript">
    document.write('<img src="images/theImage.gif?t=' + new Date().getTime() + '" alt="" />');
    </script>
    

    【讨论】:

      【解决方案2】:

      我了解您正在寻找 javascript 解决方案,但解决此问题的好方法是使用指定 no-cache 和 expiry 值的 HTTP 响应标头。如果您无法使用 .htaccess 控制 Web 服务器配置,则可以创建一个简单的 PHP 脚本,在提供内容之前设置这些标头。在 PHP 中:

      header('Expires: 0');
      header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
      

      【讨论】:

        【解决方案3】:

        修改 URL 字符串如下:

        originalUrl += "?" + new Date().getTime();
        

        【讨论】:

          【解决方案4】:

          我会为正在下载到 Cache-Control 的图像设置 HTTP 标头:no-cache,而不是想出一些 javascript “hack”。

          【讨论】:

          • 好主意,但其他解决方案更适合我的问题。对于这个问题,我更喜欢重新下载到无缓存到整个页面。顺便谢谢!
          • 恕我直言,您不需要为整个页面设置标题,而只需为图像文件设置!因为,下载图像是由单独的 HTTP 请求执行的。另一方面,由于您无论如何都使用 javascript 进行下载,因此使用该 hack 对我来说似乎很合适。
          • @chiccodoro,这就是我所说的,'我将为图像设置 HTTP 标头......'。 :)
          【解决方案5】:

          您绝对不能使用 javascript 删除临时文件。为了避免缓存,在发送图像时使用 no-cache 标头。这样每次请求时都会下载图像。

          标头列表here

          你必须使用:

          缓存控制:无缓存

          This 是 Microsoft 特定的。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-03-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-01-16
            相关资源
            最近更新 更多