Java连接Mysql,SQL Server, Access,Oracle
2011-02-24 09:47
691 查看
今天在做一个ajax请求的时候,在IE下遇到了一个很奇怪的问题:
如果第二次通过XMLHttpRequest去请求一个URL,则不会触发onreadystatechange时间,虽然从调试插件来看,ie是进行了这次请求。
后来发现,这个是因为在ie下,如果请求的URL已经被浏览器cache,则调用send方法以后,xhr的readyState已经成为了4,即一开始就是请求完成的状态,当然以后readystate不会再被赋值,也不会触发onreadystatechange事件。
解决办法:在调用send后立即检查xhr的readystate,如果已经结束,则直接处理,不必再等待onreadystatechange事件。
getJSON : function(url, callback, onerror) { // 处理ajax get请求 var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); onerror = $X.isFunction(onerror) ? onerror : null; xhr.open('GET', url, true); xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); xhr.send(); var f = function() { if (xhr.readyState == 4) { if (xhr.status == 200) { try { var data = eval('('+xhr.responseText+')'); } catch (e){ onerror && onerror(); // 处理json解析错误 xhr = null; return; }; callback(data); } else { onerror && onerror(); } xhr = null; // fix memory leaks } }; if (xhr.readyState == 4) { // for the stupid ie f(); } else { xhr.onreadystatechange = f; } }
相关文章推荐
- Java连接Mysql,SQL Server, Access,Oracle
- Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常
- Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常解决
- Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常
- java连接数据库Oracle|DB2|Sql Server|Sybase|Informix|MySQL||PostgreSQL|access
- (收藏)Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常解决
- Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常解决
- JAVA连接ACCESS,SQL Server,Mysql ,Oracle
- Java:JDBC篇,Connection连接至几种常用数据库(Oracle,MySQL,Access,SQL Server)
- java连接数据库Oracle|DB2|Sql Server|Sybase|Informix|MySQL||PostgreSQL|access
- Java连接Mysql,SQL Server, Access,Oracle
- Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常 .
- java连接数据库Oracle|DB2|Sql Server|Sybase|Informix|MySQL||PostgreSQL|access
- 【转】Java连接Mysql,SQL Server, Access,Oracle
- VS2005连接Mysql,SQL Server, Access,Oracle
- C#连接各类数据库Access、SQL Server、Oracle、MySQL、DB2代码集锦
- C#连接4种类型数据库(Access、SQL Server、Oracle、MySQL)
- C#连接4种类型数据库(Access、SQL Server、Oracle、MySQL)
- C#连接4种类型数据库(Access、SQL Server、Oracle、MySQL)
- C#连接4种类型数据库(Access、SQL Server、Oracle、MySQL)