我已经设置了一个应用程序,它在Opera和Firefox上运行得非常棒,但是在谷歌Chrome上,它会缓存AJAX请求并提供过时的数据!
http://gapps.qk.com.au是该应用程序.在Chrome中运行时,它甚至不发送AJAX请求,但是当在另一个浏览器中尝试时,它总是执行AJAX请求并返回数据.
是否有任何方法(Apache/PHP/HTML/JS)阻止Chrome执行此操作?
AJAX电话:
function sendAjax(action,domain,idelement) {
//Create the variables
var xmlhttp,
tmp,
params = "action=" + action
+ "&domain=" + encodeURIComponent(domain)
xmlhttp = new XMLHttpRequest();
//Check to see if AJAX request has been sent
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
$('#'+idelement).html(xmlhttp.responseText);
}
};
xmlhttp.open("GET", "ajax.php?"+params, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//console.log(params);
xmlhttp.send(params);
}
sendAjax('gapps','example.com','gapps');
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种非常通用的方法来为Javascript繁重的站点提供替代站点(链接转到旧的静态站点).
我目前的实施是:
//<Some JS/HTML>
$(document).ready(function() {
//<Some JS Code>
$('#error').attr('style','display: none;');
});
//<Some html>
<div id="error">
<span>If you can see this, that means something went very very wrong. Click <a href="somelink.php">Here</a> to use the old portal. Please contact some@email.com with this error and provide as much information as possible, thank you :) </span>
</div>
Run Code Online (Sandbox Code Playgroud)
我目前的问题是,这是在网站加载时可见:(.有更好的方法吗?
我知道我可以尝试添加大量的trys和catchs(已经有几个),但问题是主要客户端将使用两者之间的混合客户端.FF2-FF3,介于两者之间的所有版本,以及IE5-IE6.IE5我只是放置一个消息框和重定向,如果他们试图加载网站,我甚至不会尝试使兼容.
而这些旧的浏览器只是与某些东西不兼容....我知道我可以添加.onerror,但FF直到FF6才增加兼容性,这对于大多数客户来说是新的.(虽然很奇怪,IE5.5有它)
注意:我只是jQuery 1.7.1当前操作的基本流程就是当它完成加载初始的javascript它隐藏div.