例如:当你用jquery进行异步请求数据时,如果浏览器发现请求的地址不变,或者参数也不改变的情况下
IE默认是取原来的缓存中的数据,而不进行重新请求数
解决的方法是是在地址栏的后面加上一个随机参数值,IE发现地址改变,就会去重新请求信息,重新进行一个加载
以下是我这两天就是因为这个原因,被折磨到死的两个问题:
function loadGround() { var projectid = $('#projectid option:selected').val(); $("#groundid").empty(); $.getJSON("/FangYuan/AJAX/AjaxGround.aspx?projectid=" + projectid + ">ype=g&random=" + Math.random(), { "resultType": "json" }, function (data, textStatus) { var $sort = $("select[name='groundid']"); $sort.append("<option value=''>请选择</option>"); for (index = 0; index < data.length; index++) { $sort.append("<option value='" + data[index].id + "'>" + data[index].name + "</option>"); } $("#groundid").attr("value", ''); }); $("#roomList").html(""); }
其中关键的就是&random=" + Math.random()
另外一个问题是上传控件Uploadifyp,这个更是折磨人:
$("#uploadify").uploadify({ 'uploader': '/JS/jquery.uploadify-v2.1.4/uploadify.swf?var=' + (new Date()).getTime(), 'script': 'UploadHandler.ashx?var=' + (new Date()).getTime(), 'cancelImg': '/JS/jquery.uploadify-v2.1.4/cancel.png', // 'buttonText': '请选择..', 'buttonImg': '/JS/jquery.uploadify-v2.1.4/uploadify.jpg', // 'folder': 'UploadFile', 'queueID': 'fileQueue', // 'fileDesc': "Images(*.jpg;*.gif;*.jpeg;*.bmp;*.png;*.tiff)", 'auto': false, 'multi': true, 'onSelect': function (e, queueId, fileObj) { $("#spicpath").html(""); // alert(response); } });
其中 'uploader': '/JS/jquery.uploadify-v2.1.4/uploadify.swf?var=' + (new Date()).getTime(),
'script': 'UploadHandler.ashx?var=' + (new Date()).getTime(),
关键的随机参数 var 这样才能每次都是访问·····很关键,一直漏了uploadify.swf后面的参数。。。。。吸取教训啊