Extjs 3升级到Extjs 4

10

我希望从extjs 3迁移到extjs 4。我已经在rails 3中测试了这个例子。我发现在extjs 4中页面渲染时间非常慢。我不知道原因。
请问有人能告诉我,是什么原因导致的?或者
我的应用程序有问题吗?以及
我应该如何改进extjs 4的性能?


你有没有注意到这是一个 AJAX 问题(网络)还是 Ext 渲染问题? - atian25
谢谢回复,但我已经在本地主机上进行了测试。我认为这不是任何ajax问题。而且我也已经将相同的应用程序与ext 3进行了比较。我没有使用任何网格。我只是展示一个简单的表单,但它仍然很慢。我不知道为什么会这样。 - Anand Soni
我正在使用grails1.4M1+extjs4.0.2,但是没有看到它很慢。也许您需要提供更多信息。 - atian25
@atian25。可能是我的Rails应用程序导致的。但是我的应用程序在ExtJS3中表现良好。 - Anand Soni
你可以做的最好的事情就是创建一个简单的演示,展示问题,这样人们才能分析。如果你只是说“我的Ext-4应用程序很慢”,那么帮助起来就很困难。 - Ruan Mendes
8个回答

10

ExtJS 4.0存在性能问题。

ExtJS 4.0.2是您需要的版本,它修复了大多数性能问题。尽管如此,仍然较慢...

在谷歌上搜索“ExtJS 4性能”。


4
因将ExtJS与jQuery相比较而被踩。 - dmackerman
1
@dmackerman,我在比较质量和性能,而不是这些框架的功能。你用过ExtJS、Dojo和jQuery吗? - Dzhu
3
@Dzhu:Ext-JS 和 jQuery 是完全不同的东西,不能把橙子和苹果相提并论。jQuery 就像 Ext-Core,http://www.sencha.com/products/extcore/,请尝试在这两个上面测量性能。Ext-JS 更像 jQueryUI(但 jQueryUI 还不如它好)。Dojo 是更好的比较对象。jQuery 用于渐进增强,而 Ext-JS 用于需要 JS 的 Web 应用程序。我正在使用 Ext-JS 4.0.6,尽管我认为 Ext-JS 4.0 没有经过彻底测试(我自己找到了太多的 bug),但我仍然认为它是最完整的 Web UI 框架/库。 - Ruan Mendes
1
@JuanMendes 我在许多商业项目中广泛使用了dojo和extjs(Ajax JEE应用程序)。使用ExtJS时,您的操作方式非常受限制。关于ExtJS最糟糕的事情之一是它布局组件的方式 - 如果您没有为组件提供显式的宽度/高度声明,则有时会导致“太多递归”异常。其次,所有内容都需要在JavaScript中定义,这使得代码非常难以阅读。而使用dojo,您可以在模板文件中外部引入HTML。ExtJS是“最完整”的框架?我非常怀疑,您只能称其为一个框架。 - Dzhu
@Dzhu:学习它确实需要花费一定的时间。但作为高级用户,Ext的组件架构使我能够编写干净、可测试、可重用和松耦合的OO UI。您在布局方面遇到的问题似乎是由于对布局流程的误解。在Ext-JS应用程序中,这由布局管理器处理,您只需指定您想要如何布局即可。混合使用CSS布局和某些Ext-JS小部件需要设置宽度,从未见过高度方面的问题。 - Ruan Mendes
显示剩余6条评论

4

您是否忘记关闭动态资源加载?请注意,ext*-all.js 可以大大加快页面加载速度。


3

3

ExtJS 4比ExtJS 3快得多。来自Sencha的人解决了很多渲染问题并大大改善了性能。

在示例链接中,只需阅读部署部分。第4版引入了ext loader,它对于使用框架的具体短文件进行调试和开发而不是加载大文件(超过100,000行)更加便捷,因此解决问题更加容易。

在生产环境中,您需要使用Sencha SDK,它将生成应用程序的初始js以及ExtJS依赖项。它比第三版要好得多,因为您需要加载整个框架。


2
  1. 可能会有些晚,但事实是,ExtJS 4.x比ExtJS 3.x版本更快,并且使得前端开发人员采用MVC模式来组织他们的编码结构,使其更加清晰和可维护。
  2. ExtJS 4.x解决了渲染问题,并提高了浏览器兼容性。
  3. 回答你的问题,可能有很多原因,如下所述。
    1. 使用开发工具检查哪个js文件部分比extjs 3.x版本加载时间更长
    2. 您可能正在使用更多的内部组件(添加更多项到父项和子组件,拥有更多的子组件等)。
    3. 即使您可以使用新引入的Sencha SDK工具(在此处下载),也可以比以往更轻松地部署任何Ext JS 4应用程序。这些工具允许您生成所有JavaScript依赖项的清单,形成JSB3(JSBuilder文件格式)文件,并创建只包含应用程序所需代码的自定义构建。

注意:这完全取决于您如何设计应用程序(架构师)。

谢谢


2

Extjs 4.1解决了许多与布局相关的问题。如果您有嵌套面板,与Ext 3相比,渲染效果更好。


“更好的渲染”是指速度/性能,这也是原帖所问的吗? - Andrew Barber
性能。特别是在边框布局中看到了巨大的性能差异。 - srknori

1

与 ExtJS 3.x 相比,ExtJS 4.x 中存在许多错误。我在不同的项目中都使用过这两个版本。例如,4.0.7 版本至今仍存在文件上传问题,因此我想表达我的观点:ExtJS 3.x 是更稳定的 ExtJS 框架版本。


0
使用Extjs4.0或更高版本的MVC功能,将store、view和model controller放在不同的文件夹中,并通过controller调用它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接