背景:
最近用了第三方的开发的一个控件显示甘特图,这个控件是基于extJs开发的。
虽然有控件和extJs的文档,但只有用的时候才去翻,不去细究。大部分文档不需要参考,根据提供的Demo例子即可完成功能开发。
但是程序发布后在客户那里无法显示,提示脚本执行时间过长。
问题分析:
客户用的是win2003和ie8环境。开发是基于win7和ie9。本地测试是没有问题的,包过用ie8访问win7服务端。
可能原因有
排除问题 :1、IIS6性能不如IIS7,导致其中的大量ajax数据请求缓慢,超过了浏览器容忍范围。
2、 IE8的javascript引擎不如IE9和chrome。
3、程序有问题,客户端或者服务端请求过程有大量循环。
装了虚拟机,完全重现客户环境,测试控件原始demo,虽然缓慢,但是能够呈现,排除1,2。解决问题:开始删减代码到demo。终于到删掉一段日期创建的代码后,控件可以显示了。
经测试 ie9和chrome是可以创建new Date('2012-9-17') ,ie8 返回 NaN。导致不报错,且不能正常运行。
之后做了简单错略测试
ie9 直接读取ajax请求结果,耗时大概1.5-1.6s chrome 350ms左右。
ie9 直接读取请求前临时生成json.js文件 耗时大概 1.3-1.4s chrome 不到300ms 。
两者差别不大。测试生成的文件一个34kb,一个15kb。
关于建立在win7上服务器,ie8访问正常的原因至今不明。期待高手赐教。