Jquery ajax传递xml方式在ie8下兼容问题
要写的东西是一个工作日志页面,要求不能分页,一天写入一条数据。考虑到服务器的性能问题,使用一次性全从数据库中读出数据在方法,如果时间长了,页面在加载的时候会很慢,而且会造成浪费。所以我采用ajax技术,一次读3条数据,随着滚动条滑动加载。这样就能很好的降低服务器的压力,虽然项目不大。
项目提交的时候才发现,我写的工作日志页面居然在ie8下不能正常显示。按理来说,Jquery应该已经帮我解决了ajax创建xmlDOM时的兼容性的问题,仔细排查了以后发现是ie8对xml解析的问题。
找了资料后解决办法如下:
$.ajax({ type:’GET’, url:’list.php?pagenow=’+count, data:’xml’,//可以留空,但千万别写text或者html error:function(xml){ //这里是错误代码 $(“#news”).html(“there is something worong with your xml”); }, success:function(data){ //成功代码 var xml; var browser=navigator.appName; var b_version=navigator.appVersion; var version=parseFloat(b_version); //判断浏览器版本是不是ie8以下 if ( browser==”Microsoft Internet Explorer” && version<=4) { xml = new ActiveXObject(“Microsoft.XMLDOM”); xml.async = false; xml.loadXML(data); }else{ xml =data; } //下面的代码,该怎么写就怎么写 } });
主要问题就是ie8把xml格式在打开的时候转换成了string,我们只用把其转换回xml就可以了。