【问题标题】:How to programmatically clear the web browser cache in BlackBerry?如何以编程方式清除 BlackBerry 中的 Web 浏览器缓存?
【发布时间】:2011-09-19 04:48:39
【问题描述】:

我正在为 BlackBerry 应用程序设置 OTA 下载。我有一个文件夹,其中包含一个包含多个 COD 文件的 JAD 文件,以及一个简单的 HTML 下载页面,其中包含指向该 JAD 文件的链接。对于每个设备,第一次下载工作正常,但是当我在 JAD 文件中放置带有递增 MIDlet-Version: 的更新版本(新的 JAD 和 COD 文件)并从设备下载时,下载的显示页面仍然显示旧版本,当我点击下载按钮时,对话框询问我是否要用新版本 1.0 替换旧版本 1.0。

如果我转到选项/缓存并清除缓存,然后重新加载下载页面并单击 OTA 链接,它现在正确显示可用的新版本为 1.1。所以看起来我设备上的浏览器正在缓存旧的 JAD 文件。

既然清除浏览器的缓存解决了这个问题,有什么办法可以通过编程来做到这一点?无论如何,我正在从我的 BB 应用程序打开浏览器实例,所以如果可能的话,这很容易做到。或者,我可以在 JAD 文件中设置任何属性/属性来防止它被缓存吗?

【问题讨论】:

    标签: caching browser blackberry


    【解决方案1】:

    出于安全原因,BlackBerry 不允许第三方应用程序操纵浏览器历史记录或缓存。但是,您看到的问题的解决方法是将Cache-Control: no-cache HTTP 标头添加到提供 .jad 文件的页面。这将强制 BlackBerry 浏览器每次都查找新版本。

    【讨论】:

    • 我在为 JAD 文件提供服务的页面中已经有了 no-cache 标头。问题似乎是 JAD 本身被缓存了。
    • page serving the JAD file,您的意思是当您浏览到实际的 .jad 文件时,将返回标头,还是指您从中获取 jad 文件的页面?如果是后者,那就可以解释为什么 jad 文件仍在缓存中。
    • @Laepdjek:“提供 JAD 文件的页面”是指包含指向 JAD 文件的可点击链接的页面。 BB 浏览器偶尔会缓存 JAD,因此当我在我的网站上放置新版本的 JAD/COD 时,当用户单击下载链接时,他们会弹出一个窗口,询问他们是否安装他们已有的旧版本。如果发生这种情况,我会清除浏览器缓存并再次单击链接,然后我会下载最新版本。
    • jad 只是一个文本文件,由您运行的任何 Web 服务器(IIS、Apache 等)通过 HTTP 提供服务,因此您可以像任何其他页面一样向其添加 HTTP 标头。它恰好具有与 html 页面不同的内容类型。但是您仍然可以发送Cache-Control: no-cache 标头,然后黑莓每次都会重新下载 jad(我已经尝试过,并验证它可以正常工作)。
    【解决方案2】:

    例子:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Cache-Control" content="no-cache"/>
    <meta http-equiv="Pragma" content="no-cache"/>
    <meta http-equiv="Expires" content="0"/>
    <title>my web Page</title>
    </head>
    <body>      
    </body>
    </html>
    

    【讨论】:

      猜你喜欢
      • 2012-01-08
      • 1970-01-01
      • 1970-01-01
      • 2014-12-15
      • 2011-12-30
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      相关资源
      最近更新 更多