Extjs3.4 JS加载顺序问题

玄冰2013 2012-11-23 10:57:48
当主页面中引用了扩展控件里的JS脚本,由于引用JS文件较大,加载慢。
导致在主JS 里创建对象时 找不到该类型而报错,
不知道说清楚了么?在线等!!
目前是把外部JS 放在主JS之前,但还是会有该错误。
...全文
371 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
玄冰2013 2012-12-11
  • 打赏
  • 举报
回复
目前还在优化中,完成后再来补充细节
josephSC 2012-12-08
  • 打赏
  • 举报
回复
还有就是你有没有用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'
]);
josephSC 2012-12-08
  • 打赏
  • 举报
回复
试一下头文件ext-all.js换成ext-all-debug.js 问题也有可能出在你的主程序代码里,建议你跟踪下在主程序定义RowExpander时是不是成功了
玄冰2013 2012-12-07
  • 打赏
  • 举报
回复
以下是主页界面

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>

    <title></title>
    <link  type="text/css" href="@Url.Content("~/Content/resources/css/ext-all.css")" rel="stylesheet" />
    <link type="text/css" rel="stylesheet" href="@Url.Content("~/Content/css/commstyle.css")" />
    <link rel="stylesheet" type="text/css" href="@Url.Content("~/Content/Main.css")" />
</head>
<body>
    <div>
    </div>
    <script type="text/javascript" src="@Url.Content("~/Scripts/ExtJS/ext-base.js")"></script>
    <script type="text/javascript" src="@Url.Content("~/Scripts/ExtJS/ext-all.js")"></script>
    <script type="text/javascript" src="@Url.Content("~/Scripts/ExtJS/ux/TabCloseMenu.js")"></script>
    <script type="text/javascript" src="@Url.Content("~/Scripts/ExtJS/ux/PanelResizer.js")"></script>
    <script type="text/javascript" src="@Url.Content("~/Scripts/ExtJS/ux/PageComboResizer.js")"></script>
    <script type="text/javascript" src="@Url.Content("~/Scripts/ExtJS/ext-lang-zh_CN.js")"></script>
  
</body>
</html>
以下是功能页面

@{
    Layout = null;
}

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="@Url.Content("~/Content/resources/data-view.css")" />
    <script type="text/javascript" src="@Url.Content("~/Scripts/ExtJS/ux/RowExpander.js")"></script>
</head>
<body>
    <div id="DivTask">
    </div>
    <script type="text/javascript" src="@Url.Content("~/Scripts/ExtJS/ux/DataView-more.js")"></script>
    <script type="text/javascript" src="@Url.Content("~/Scripts/ExtJS/ux/CheckColumn.js")"></script>
    <script type="text/javascript" src="@Url.Content("~/Scripts/Task/TaskWindow.js")"></script>
    <script type="text/javascript" src="@Url.Content("~/Scripts/Task/TaskList.js")"></script>

</body>
</html>
在功能页面中经常会发生找不到 RowExpander 中的定义
likeajin 2012-11-28
  • 打赏
  • 举报
回复
帖你加载js的html看看。我用了Ext.ux中的控件,也自己扩展了一些控件,就算用移动的3G信号也不会出错。
玄冰2013 2012-11-28
  • 打赏
  • 举报
回复
引用 5 楼 josephSC 的回复:
原来是ColumnHeaderGroup呀,按道理直接在你的网页引用就能用了,不知道楼主是怎么加载它的呀?是否有写 plugins: [group]
写了
玄冰2013 2012-11-28
  • 打赏
  • 举报
回复
引用 4 楼 xzy88 的回复:
引用 3 楼 jimyboy 的回复:是不是只能靠压缩JS文件 正常情况下,你自定义的外部控件,放在主js类库前面加载,是没有问题的,不会因加载不全面出错。 如果有问题,基本上可以判定你自写的控件“有质量问题”。。。 你要写完后,要注册为类,至于怎么注册之类的,可以参考示例里边ux下的那些插件的做法。
我引用的就是官方的UX里的JS
josephSC 2012-11-27
  • 打赏
  • 举报
回复
原来是ColumnHeaderGroup呀,按道理直接在你的网页引用就能用了,不知道楼主是怎么加载它的呀?是否有写 plugins: [group]
玄冰2013 2012-11-24
  • 打赏
  • 举报
回复
是不是只能靠压缩JS文件
玄冰2013 2012-11-24
  • 打赏
  • 举报
回复
比如说我定义了这个:

var group = new Ext.ux.grid.ColumnHeaderGroup({
rows: [row]
}); 
经常会出现Ext.ux.grid is undefined这个错误 看火狐里的加载时间,扩展时间大于 主JS加载时间。
网络科技 2012-11-24
  • 打赏
  • 举报
回复
引用 3 楼 jimyboy 的回复:
是不是只能靠压缩JS文件
正常情况下,你自定义的外部控件,放在主js类库前面加载,是没有问题的,不会因加载不全面出错。 如果有问题,基本上可以判定你自写的控件“有质量问题”。。。 你要写完后,要注册为类,至于怎么注册之类的,可以参考示例里边ux下的那些插件的做法。
josephSC 2012-11-24
  • 打赏
  • 举报
回复
说实话楼主解释的不是特别清楚。我想你遇到的问题应该是由于你的扩展控件是异步加载引起的吧?解决方法有两种 1是把异步加载方法换成同步加载。如果不明白在网上查下同步异步 2或者把你住程序的代码放到你的扩展控件的某种事件(event)或listener里,这样先执行扩展控件的事件再执行主程序

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧