日期:2014-05-16  浏览次数:20322 次

Extjs3.4 JS加载顺序问题
当主页面中引用了扩展控件里的JS脚本,由于引用JS文件较大,加载慢。
导致在主JS 里创建对象时 找不到该类型而报错,
不知道说清楚了么?在线等!!
目前是把外部JS 放在主JS之前,但还是会有该错误。
------解决方案--------------------
说实话楼主解释的不是特别清楚。我想你遇到的问题应该是由于你的扩展控件是异步加载引起的吧?解决方法有两种

1是把异步加载方法换成同步加载。如果不明白在网上查下同步异步

2或者把你住程序的代码放到你的扩展控件的某种事件(event)或listener里,这样先执行扩展控件的事件再执行主程序
------解决方案--------------------
引用:
是不是只能靠压缩JS文件

正常情况下,你自定义的外部控件,放在主js类库前面加载,是没有问题的,不会因加载不全面出错。
如果有问题,基本上可以判定你自写的控件“有质量问题”。。。
你要写完后,要注册为类,至于怎么注册之类的,可以参考示例里边ux下的那些插件的做法。
------解决方案--------------------
原来是ColumnHeaderGroup呀,按道理直接在你的网页引用就能用了,不知道楼主是怎么加载它的呀?是否有写 plugins: [group] 
------解决方案--------------------
帖你加载js的html看看。我用了Ext.ux中的控件,也自己扩展了一些控件,就算用移动的3G信号也不会出错。
------解决方案--------------------
试一下头文件ext-all.js换成ext-all-debug.js

问题也有可能出在你的主程序代码里,建议你跟踪下在主程序定义RowExpander时是不是成功了
------解决方案--------------------
还有就是你有没有用Ext.require,如果动态加载class时它应该用到

另外就是Ext.Loader.setPath('Ext.ux', '../ux'); 帮你的程序找到路径


Ext.Loader.setConfig({
    enabled: true
});
Ext.Loader.setPath('Ext.ux', '../ux'); //注意你的ux的路径

Ext.require([
    'Ext.grid.*',
    'Ext.data.*',
    'Ext.ux.RowExpander', 
    'Ext.selection.CheckboxModel'
]);