5.1劳动节,周一假之;5.8二战纪念,周一桥之;5.17升天,周五连之。整个五月都是假,projet断断续续的。
整个平台的javascript全要改成基于jquery,prototype这种改起来都算小意思了,ui和1.5版之前的jquery的冲突今天把姐整得人仰马翻。因为页面中大量使用列表,比较之后选了现成的flexigrid——模样过得去,源代码也比较清楚,修起来便当。
弄到这会儿大半的工作都完成了,跟老板也对过进程。只剩下日历和拖拉菜单这些零件,打算一统拿ui凑和了——把主题润色下就行。结果就给我来个ui和flexigrid不兼容的飞机。我说这俩都是jquery家的肿么就能不兼容了,咹!不就是打包里的jquery版本差了0.4级灭!
因为flexigrid比较低级,还是1.2.3版的,按住了一顿猛掀,发现问题出在申请数据这一节上。丫在这一步的代码是
$.ajax({
type: p.method,
url: p.url,
data: param,
dataType: p.dataType,
success: function(data){
g.addData(data);
}
});
果然就sucess不了,于是按住加了一段
$.ajax({
type: p.method,
url: p.url,
data: param,
dataType: p.dataType,
success: function(data){
g.addData(data);
},
error:function (xhr, ajaxOptions, thrownError) {
alert(xhr.responseText);
alert(xhr.status);
alert(thrownError);
}
});
status是parsererror,而thrownError的信息是json.parse expected property name or ‘}’。意即contentType和字符编码都不是问题,问题出在json.parse这一步上,儿子不承认老子认可的数据格式。
于是回头对着返回数据又是一顿猛敲,最终诊断结果是——在1.5版之前,返回数据无论是加不加引号,加单引号还是双引号,全被自动当成数据串处理,比如说{page:1, total: 15}这种样子的字符串是可以被接受被顺利转正成为json数据的,而在1.5版之后,返回数据的key和value都必须使用双引号,且在数据串中不得有如\之类的转义符,也就是说必须要整容修面成{“page”:”1″, “total”: “15”}这副德性才能拿到json世界的入境签证。
坑爹啊泥妹!!!
把所有召唤页的数据格式全都改了……还好姐是一懒胚,能重复使用的功能绝不写第二遍。饶这样,全部搞完测试完毕命都折了半条。码农不是人干的啊!求包养!!!