当前位置:首页 > 日记 > 正文

IE8/IE9下Ajax缓存问题

IE8/IE9下Ajax缓存问题

ajax简介

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。

AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。

AJAX 是一种用于创建快速动态网页的技术。

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

步入正题:

最近在做一个网站的登录注册框,前端使用了jquery。由于sign和login不是在单独的页面上,而是以一个弹出框出现。所以决定使用ajax来实现注册和登录功能。本以为可以一帆风顺,结果在测试的时候发现了奇怪的问题。

  在用chrome , ff , IE10+测试的时候基本没问题,但在IE8,9上运行时却出现了输入正确的用户名和密码不能登录的情况。一开始还以为是session丢失了,开始吐槽后台的框架。

  但是在耐心的调试后,发现session并没有丢失。这下可急死我了,难道混了这么久连一个注册登录都搞不定?这让我不禁妄自菲薄,感叹人生百态,世事无常。就这样过了1/3炷香之后,我决定要振作起来。

  在仔细观察我那没长几个注释的代码后,我发现$.ajax中的url有点奇怪。虽然地址是正确的,但程序猿和攻城狮的直觉告诉我,IE8 9两兄弟有可能自作多情地缓存了我的ajax。想到这里,双手突然有些颤抖,慌忙在url后加了个时间戳。

//就像这样url:myurl+"?t="+(new Date).valueOf() 

  然后清个缓存再试试,成功!可以正常登录了。

  查了查百度,原来在IE8 9下,进行Ajax请求时,若与之前请求相同,则不会再从服务器获取数据,而是直接从本地获取。

  这样,为了对付低版本IE过分的热情,在使用$.ajax时可以将其cache属性设置为false(未测试过),

      cache:

          要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false),设置为false将不会从浏览器缓存中加载请求信息。

或者在全局中设置(未测试过)

//$.ajaxSetup() 方法设置全局 AJAX 默认选项。$.ajaxSetup({ cache: false }); 

  这样就不用再担心缓存了。

  但是,缓存并非是为了给我们带来麻烦而设置的,毕竟别的浏览器可以正常使用。所以,要为IE8 9单独设置禁用缓存中的信息。

//jquery 1.9.0后取消了$.browserif($.browser.msie&&($.browser.version=="8.0"||$.browser.version=="9.0")){//做处理 }

  在1.9.0之后可以使用$.support来判断

// IE6789,input元素的checked属性不能被拷贝// IE下,input被更换类型后,无法保持前一个类型所设的值if(!$.support.radioValue&&!$.support.noCloneChecked){//做处理 } 

  $.support主要用于 jQuery 的内部使用,感觉一点也不好用。

以上所述是小编给大家介绍的IE8/IE9下Ajax缓存问题 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

相关文章

web前端超出两行用省略号表示的实

web前端超出两行用省略号表示的实

方法,省略号,两行,电脑软件,web,web前端超出两行用省略号表示的实现方法HTML<span class="GW_bod0112211"> 吐鲁番特级无炳黑加仑葡萄干500g包邮无籽吐鲁番特级无炳黑加仑葡萄干500g包邮无籽吐鲁番特级无炳黑加仑葡萄干500g包邮无籽,超大…

cdr怎么反选? Coreldraw反选的技巧

cdr怎么反选? Coreldraw反选的技巧

技巧,电脑软件,cdr,Coreldraw,Coreldraw 中也可以做到反选内容。软件名称:CorelDRAW X4 简体中文正式破解安装版(附注册序列号)软件大小:97MB更新时间:2016-05-161、比如我先选文字之外的所有内容,我可以先选择所有文字,利用菜单/编辑下面的全选…

JS处理数据四舍五入 | tofixed与ro

JS处理数据四舍五入 | tofixed与ro

四舍五入,数据,详解,区别,电脑软件,1 、tofixed方法toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。例如将数据Num保留2位小数,则表示为:toFixed(Num);但是其四舍五入的规则与数学中的规则不同,使用的是银行家舍入规则,银行家舍入:所…

INdesign矩形怎么制作成角花画框效

INdesign矩形怎么制作成角花画框效

矩形,效果,电脑软件,INdesign,成角花,INdesign中想要制作一个角花效果,该怎么制作呢?下面我们就来看看详细的教程。软件名称:Adobe InDesign CS5专业排版软件 官方简体绿色免注册版(附indesign cs5序列号)软件大小:891.07MB更新时间:2014-12-051…

兼容浏览器的js事件绑定函数 | 详

兼容浏览器的js事件绑定函数 | 详

函数,事件绑定,浏览器,详解,电脑软件,因为javascript中所有对象都集成与Object,那么只有给Object原型添加一个事件绑定函数,就不需要在处理绑定事件的时候,每次写一长串代码,直接调用即可。在代码中添加红色部分代码,直接便可以在代码中直接调用…

安装.NET Framework进度条卡住不动

安装.NET Framework进度条卡住不动

解决方案,进度条,安装,推荐,不动,VS在安装之前需要安装.NET Framework,我安装的是4.0版本。但是安装进度条到一半左右时就卡住不动了。前前后后重试多次,还有几次重新开机,但都没用。开始还以为是安装的系统有问题。后来在网上求助,尝试几次之…

怎么在ppt2013中制作透明字ppt2013

怎么在ppt2013中制作透明字ppt2013

透明,步骤,方法,电脑软件,strong,  有时,需要在PPT幻灯片中添加透明文字说明。那么如何在PPT幻灯片中添加透明文字说明呢?在PPT幻灯片中添加透明文字说明的方法很简单。下面小编就教你怎么在ppt2013中制作透明字。在ppt2013中制作透明字的…

JS模拟实现ECMAScript5新增的数组

JS模拟实现ECMAScript5新增的数组

数组方法,模拟,电脑软件,JS,ECMAScript5 新增了十个数组方法,这些方法只有在ie9及以上浏览器中可以被使用,下面是对于这些方法的模拟实现。一、Array.isArray(element)  该方法用于判断传入的对象是否为数组类型,返回true和false。Array.new…

cdr怎么设置快捷键? Coreldraw自定

cdr怎么设置快捷键? Coreldraw自定

快捷方式,快捷键,设置,教程,自定,Coreldraw中所有的工具以及菜单上的功能键都可以自己设定快捷方式。软件名称:CorelDRAW X4 简体中文正式破解安装版(附注册序列号)软件大小:97MB更新时间:2016-05-161、找到要自定的工具或是功能菜单,我这里要…

ps怎么将照片制作成打造半草图效果

ps怎么将照片制作成打造半草图效果

照片,草图,效果,电脑软件,ps,想要将照片的一片半变成手绘,该怎么制作呢?下面我们就来看看ps打造半草图效果的教程。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、当然是在PS中打开小女神,我们先复制一…

QQ空间怎么取消访客挂件

QQ空间怎么取消访客挂件

空间,取消,访客,挂件,电脑软件,  qq空间怎么取消访客挂件?可能有的时候当你打开你的qq空间的时候,会在它的个人中心的右面看到有一个访客的小挂件,而这个小挂件也不是我们自己添加上去的,我们不想要这个挂件的话,要如何要找到这个挂件的位置…

详解ASP.NET Core应用中如何记录和

详解ASP.NET Core应用中如何记录和

日志,详解,电脑软件,NET,ASP,日志记录不仅对于我们开发的应用,还是对于ASP.NET Core框架功能都是一项非常重要的功能特性。我们知道ASP.NET Core使用的是一个极具扩展性的日志系统,该系统由Logger、LoggerFactory和LoggerProvider这三个核心…