我遇到了一个问题,即包含jQuery(V1.10.2 - 或任何版本),如果所有相关页面都是通过第一页上的链接访问,则会导致第二页的CSS样式无法加载缓存。为了说明这个问题,我创建了一个非常基本的例子。两个页面都使用相同的jQuery,jQuery Mobile和jQuery Mobile CSS文件,两者都由清单文件(match.manifest)缓存,该文件由第一页引用。
情况
加载第一个页面,指示浏览器缓存第一个(index.html)和第二个(index2.html)页面,然后在第一个页面上添加一个链接到第二个页面。如果单击此链接,则会转到第二页,但第二页的CSS样式应用 。如果您刷新,则 。
此外,如果你加载第一页,使用链接,然后返回而不刷新,第二页的CSS样式实际上应用于第一页< /强>!
我创建了一个简单的示例,可在此处找到:http://cyphergaming.co.uk/dunk/isosec/samples/appcache/
守则
如果有帮助,这里是使用的代码
的 match.manifest: 的
CACHE MANIFEST
#update 29/08/13 09:50
CACHE:
# HTML Pages
index.html
index2.html
# CSS
css/jquery.mobile-1.3.2.min.css
# JavaScript
js/jquery-1.10.2.min.js
js/jquery.mobile-1.3.2.min.js
# Images
images/ajax-loader.gif
css/images/ajax-loader.gif
的的index.html: 的
<!DOCTYPE html>
<html manifest="match.manifest">
<head>
<meta charset="utf-8" />
<title>Home Page</title>
<meta name="viewport" content="initial-scale=1, maximum-scale=1"/>
<link rel="stylesheet" href="css/jquery.mobile-1.3.2.min.css" />
<script src="js/jquery-1.10.2.min.js"></script>
<!-- With the below line in this file only, the problem occurs. Without it, it does not. -->
<script src="js/jquery.mobile-1.3.2.min.js"></script>
</head>
<body>
<div data-role="page" id="homePage">
<p>First Page.</p>
<a href="index2.html">Go to second page.</a>
</div>
</body>
</html>
的 index2.html: 的
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Home Page</title>
<meta name="viewport" content="initial-scale=1, maximum-scale=1"/>
<link rel="stylesheet" href="css/jquery.mobile-1.3.2.min.css" />
<script src="js/jquery-1.10.2.min.js"></script>
<script src="js/jquery.mobile-1.3.2.min.js"></script>
<style>
*
{
background-color: #ABABAB;
}
</style>
</head>
<body>
<div data-role="page" id="homePage">
<p>Second Page (This should have a grey background, and will if you refresh (Or exlude the jQuery file from the first page).</p>
</div>
</body>
</html>
请随时测试我提供的链接,或使用代码自行测试,如有任何问题,请随时与我们联系。
感谢您的关注,非常感谢您的帮助!
答案 0 :(得分:1)
这是关于如何在使用JQuery Mobile时禁用Ajax链接的duplicate answer
示例:
<a href="index2.html" data-ajax="false" class="ui-link">Go to second page.</a>
问题是第一页只有Ajax在第二页HTML中调用,而不包括第二页样式。
您还可以添加一个全局样式表,其中的类将为第二页添加样式。
编辑:
data-ajax="false"
是使用的正确属性,而不是rel="external"
,用于链接您的网站。
答案 1 :(得分:0)
您应该使用$ .mobile.changePage在页面之间导航。