记用ajax的一个bug

 遇到一个bug,IE8,只有第一次功能正确,后面都不生效。我看了一下,确实IE存在问题,调试发现根本不进入后台,于是我猜测是缓存的问题,于是加上cache:false,解决了问题。

   $.ajax(
        {
            url: "ParaSetting/OpenOrCloseParam",
            data: {
                Id: id
            },
            cache:false,
            type: "get",
            success: function (data) {
                alert(data);
                if (data === "操作失败") {
                    layer.alert("操作失败");
                }
                else {
                    window.location.reload();
                }
            },
            error: function (e) {
                alert(e);
            }
        });
后来新同学百度一下,发现jquery中 cache: true和false的区别如下:

true的话会读缓存,可能真的到服务器上。
假如上次访问了a.html,第二次的时候得到的是上次访问的a.html的结果,而不是重新到服务器获取。
false的话会在url后面加一个时间缀,让它跑到服务器获取结果。
cache只有GET方式的时候有效。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。