jquery版本升级引发的问题和解决方法
以前写的jquery组件,jquery使用的1.3.2版本,算是一个稳定版了
?
听说jquery新版本对性能控制更加完善,也增加许多新功能,看的我浑身发热,欲罢不能。。。。。。。。。
果断决定把那个老迈的1.3.2升级成1.6.2
?
jquery版本切换之后,发现悲剧了
以前的jquery组件不能用了
深入调试后发现,主要是POST请求没有执行成功,每次调试到post的时候,程序就过去了
?
我就奇怪了,jquery升级以后也有post方法啊,怎么就执行不过去呢
js调试也是烦躁的一塌糊涂,几次下来我就被激怒了,小宇宙轻轻的爆发了一下。。。。
?
进入1.6以后,发现jquery1.6的ajax的调用架构完全换了(哈哈,新发现)
几经周折,发现了一个新api,parseJSON
if ( typeof data !== "string" || !data ) {return null;}// Make sure leading/trailing whitespace is removed (IE can't handle it)data = jQuery.trim( data );// Attempt to parse using the native JSON parser firstif ( window.JSON && window.JSON.parse ) {return window.JSON.parse( data );}// Make sure the incoming data is actual JSON// Logic borrowed from http://json.org/json2.jsif ( rvalidchars.test( data.replace( rvalidescape, "@" ).replace( rvalidtokens, "]" ).replace( rvalidbraces, "")) ) {return (new Function( "return " + data ))();}
?发现每次程序都是从window.JSON里面进去。。。。。
那死东西是啥啊,我咋没见过啊,看jquery上面的注释是说,调用浏览器本地的json解析器
哟,牛逼了么,看来以后写json的时候,可以调用这个呀。。。。。
?
没办法,google发现,浏览器本地JSON解析器对json的格式要求很严格
举个例子来说,{aa:123,bb:123}这个json,在浏览器本地的解析器里面是不能通过的,一定要写成{“aa”:123,“bb”:123}
?
原来是我自己偷懒,没把json拼接写好
修改部分java代码以后,程序顺利运行,jquery升级成功