每当在Firefox和Webkit中缓存页面时,它似乎都会失去所有的ajax功能。
<html manifest=cache.manifest>
<head>
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jqtouch.js" type="text/javascript"></script>
它只会检索已缓存的页面,无论如何。有人知道怎么修这个东西吗? 提前致谢! 编辑:Ajax代码:
var http = false;
if(navigator.appName == "Microsoft Internet Explorer") {
http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
http = new XMLHttpRequest();
}
http.open("GET", "default.css", true);
http.setRequestHeader('CacheControl', "no-cache");
http.onreadystatechange=function() {
if(http.readyState == 4) {
alert('4(good):'+http.responseText);
}
}
http.send(null);
还为请求使用jquery $ .ajax。都没有工作。 JQuery的:
$.ajax({
url: site_url,
cache: false,
dataType: 'html',
data: ({uuid : devid}),
success: function(response){
他们总是说成功,但只有在缓存页面时才返回数据。否则返回null“”。
最后一件事:我要求不在清单上的页面,因为服务器端后端相当大。不可能在清单中包含所有页面。
基本上,我如何访问不在同一站点AJAX上的清单上的页面。每当我尝试当前它总是返回null。 返回03:11:41,即使没有缓存等等。
答案 0 :(得分:1)
那不是真的。如果您明确地从页面请求数据,则会为您重新下载。您可以通过打开Firebug或Chrome的调试窗口来检查这一点,并观看浏览器发出http请求。
答案 1 :(得分:1)
我一直在努力让cache.manifest工作一段时间,它一直给我类似的回应。我有一个jquery移动应用程序使用Web服务来获取它的数据,直到我将web服务添加到我的cache.manifest文件的NETWORK部分之后才能正常工作
CACHE MANIFEST
# This is a comment.
# Cache manifest version 0.1.3.5
# If you change the version number in this comment,
# the cache manifest is no longer byte-for-byte
# identical.
NETWORK:
# All URLs that start with the following lines
# are whitelisted.
Service.svc
CACHE:
# Additional items to cache.
src/jquery-1.6.2.min.js
src/jstorage.min.js
src/jquery.numeric.js
src/jquery.format-1.1.min.js
assets/json2.min.js
assets/jquery.signaturepad.css
assets/jquery.signaturepad.min.js
jquery.mobile-1.0b2/jquery.mobile-1.0b2.min.css
jquery.mobile-1.0b2/jquery.mobile-1.0b2.min.js
jquery.mobile-1.0b2/images/ajax-loader.png
jquery.mobile-1.0b2/images/icon-search-black.png
jquery.mobile-1.0b2/images/icons-18-black.png
jquery.mobile-1.0b2/images/icons-18-white.png
jquery.mobile-1.0b2/images/icons-36-black.png
jquery.mobile-1.0b2/images/icons-36-white.png
src/link-1-3.js
src/events-1-3.js
src/custom-styles.css
Login.html
答案 2 :(得分:0)
默认情况下,jquery的ajax函数将接收它的数据(json和jsonp除外)。您可以使用以下命令告诉ajax调用不要缓存:
$.ajax({
cache: false
})
答案 3 :(得分:0)
IE中的以下代码进行服务器调用,因为您正在缓存它不进行后续调用...
if(navigator.appName == "Microsoft Internet Explorer") {
http = new ActiveXObject("Microsoft.XMLHTTP");