6

当我将 appcache 添加到运行 jquery mobile 的 webapp 中时,所有从我的服务器请求 json 文件的 ajax 调用停止工作。我的清单文件如下所示:

CACHE MANIFEST

CACHE:

index.html
scripts/jquery-1.7.1.min.js scripts/jquery.flot.min.js
scripts/jquery.flot.threshold.min.js
scripts/jquery.mobile-1.0.1.min.js
styles/jquery.mobile-1.0.1.min.css
styles/touchStyles.css
styles/styles.css

NETWORK: 

index.appcache
dataFetchAndDraw.js
initJson

initJson 是不起作用的调用之一。我尝试输入完整地址(aaa:bbb:ccc:ddd:6565/initJson)也没有成功。

在我的 .htaccess 文件中,我只有这一行:

AddType text/cache-manifest .manifest
4

3 回答 3

10

我刚刚遇到了这个问题,不得不在清单文件的 NETWORK 部分添加一个通配符,以允许浏览器访问网络以获取任何非缓存资源。

NETWORK:
*
http://*

您显然需要上面的两个通配符条目来支持所有浏览器。

我还发现appcachefacts.info是一个有用的资源,可以帮助我了解有关 appcache 的这一点和其他细节。我建议在继续 appcache 学习曲线之前通读一遍:

NETWORK 部分列出了所有可以通过 Internet 加载的 URL。如果您的应用程序包含任何 API 调用,请确保在此处枚举它们。请注意,这是一个 URL 前缀列表,因此如果您的所有网络调用都以http://example.com/api/开头,那么这就是您需要包含的全部内容。

如果您想允许访问任意 URL(脚本、样式表、API 调用等),请在本节中包含*、http://* 和 https://*。(Chrome 和 Safari 尊重 *;Firefox 需要 http://* 和 https://*。)

于 2012-06-19T14:12:51.983 回答
2

我正在处理的应用程序遇到了类似的问题,我遇到的问题是 ajax 调用中的缓存标志默认为 true。

我发现当我添加

cache : false

对于我的 ajax GET 请求,请求会到达服务器。(http://api.jquery.com/jQuery.ajax/)

于 2012-05-21T00:37:11.457 回答
0

我今天抛出这个问题。但在我的情况下,只需两个步骤:

  1. $.ajax({ url: "/myurl", cache: false, ...})
  2. 配置 appcache NETWORK 会话

我希望它对你有用。

于 2013-11-27T15:55:04.060 回答