2008-09-29 93 views
4

最近出现了几种用于编写基于类似桌面的应用程序的框架。例如。 SproutCoreCappuccino。你有使用它们的经验吗?你的印象是什么?我错过了其他框架吗?你会推荐什么框架来为网络制作类似桌面的应用程序?

我在StackOverflow上看到relatedquestions,但它们大多生成标准答案,如“使用jQuery或MochiKit或MooTools或Dojo或YUI”。虽然有些人给non-standardanswers,但他们似乎没有什么经验使用这个框架。

任何人都可以分享真正的经验,为浏览器开发类似destop的应用吗?

+0

我无法回答你的问题,但Ext框架有很多类似桌面的小部件,我听说过很多关于它的好东西:http://extjs.com/ - 也许还有其他的东西需要考虑。 – 2008-09-29 09:49:51

回答

6

由于速度问题,这些高层次的框架引起了许多大(如:不平凡的)应用程序,我们只使用纯jQuery的。在我们的测试中,在有很多可拖动对象或多个放置目标的情况下,以及在屏幕上显示长列表(具有> 1000个条目)的情况下,所有高级框架都会崩溃。

部分原因是由于IE6和IE7的问题(在DOM树达到一定复杂度后性能突然开始急剧恶化),但部分原因是由于这些框架产生的开销。

所以我不会推荐任何高级框架。我的建议是使用jQuery并直接使用DOM。

一些提示,以提高性能:

  • 如果可能,使 服务器上的HTML。
  • 保持HTML尽可能简单,如 。
  • 避免DOM树中有许多元素 。
  • 避免递归 表结构(IE突然停止 显示它们在嵌套级别相对较少 后)。
  • 删除DOM树中的不可见 元素。
  • 删除 从 之前的DOM树中删除东西,然后重新插入 它们,而不是在它们在树中时将它们更改为 。
0

我对SproutCore或Capuccino没有任何经验。但是已经尝试在Django之上使用Dojo进行这类工作。只能告诉你它是缓慢的和越野车。

7

以我的观点来看,卡布奇诺就是一个不做的例子。他们在JavaScript的基础上实现了另一种语言,这种语言在浏览器开发人员已经在努力对抗时已经带来了速度缓慢,而最糟糕的是,他们根本不依赖浏览器小部件,打破了所有的用户导航体验。例如,他们实现了自己的滚动条,主要缺点是使用鼠标滚轮不再有效!

我真的更喜欢ExtJS的方法,它可以让您的UI更加接近浏览器,并为您提供丰富的小部件。

+0

我也无法忍受编写成JS的一种语言写作。如果出现任何问题,尝试调试是地狱。 JS是网络的语言。我很长一段时间的Ext JS用户,他们在每个版本中都在不断改进。 – 2011-08-12 16:47:38

1

苹果正在证明sproutcore确实有效,尽管很难估计它的工作效果。目前,我使用自制的一系列库来构建Web应用程序,从我们的Windows软件套件中复制一组功能(但适用于Web界面)。到目前为止,我已经避免了框架,特别是因为我不想膨胀。这种方法的问题是我浪费了过多的时间来重复已经在框架中的功能,我觉得随着时间的推移,我将接近类似于这些框架的东西。

因此,我一直在用extjs实现一个web应用程序,这是一个令人惊讶的不错的体验。性能非常好,而且易于开发的程度非常高,因为它们的组件集适用于实际构建应用程序,而不仅仅是花哨的演示(Web工具包中的常见问题)。如果您有兴趣构建类似桌面的网络应用程序,我一定会推荐它。

显然扩展它的问题仍然适用,但说实话,我觉得在scale不是那么重要的情况下使用工具包,并且只在需要的时候回退到基本的javascript会更好(过早优化万恶之源)。 Extjs可以覆盖原型或jQuery的顶部,所以这种方法绝对可行。避免DOM中的太多内容通常是按需加载和卸载的一种方法。例如,有一个extjs网格类的第三方扩展,它允许通过巧妙地加载和卸载数据来滚动一百万行数据集。

1

如果您要使用Java,您可能会考虑使用GWT-Ext(在下面使用Ext)可能是一个非常干净的解决方案。

1

我喜欢qooxdoo,虽然它采用JS的OOP方法,而不是原型,它是一个坚实的框架,并有很多功能。

相关问题