一次javascript程序排错

背景: 

最近用了第三方的开发的一个控件显示甘特图,这个控件是基于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访问正常的原因至今不明。期待高手赐教。 

原文地址:https://www.cnblogs.com/wellma/p/2688991.html