2010年12月16日星期四

IE动态加载SCRIPT状态onreadystatechange事件提供状态readyState的bug

用IE动态加载SCRIPT使用的是SCRIPT DOM中的onreadystatechange事件监听加载情况,但是在js有cache和没cache情况下状态是不一样的,这给开发者带来了很大的麻烦。

no cache:

complete js加载了,但是js里面的定义全部都未在window中存在。

loaded js加载完成并且js定义在window存在。

cache:

complete js加载了,并且定义在window中存在。

这就有一个问题,监听loaded,只在没有cache情况下有效,监听complete,在no cache情况下会出问题,而且开发者也不知道是否有cache。

只有一个折中的方式,在complete的时候具体回调判断需要请求的js是否初始化完成,如果没有初始化完成继续监听loaded事件。好恶心的一个做法!!!

没有评论:

发表评论