您建议使用什么框架为网络制作类似桌面的应用程序?

时间:2008-09-29 09:43:11

标签: javascript web-applications frameworks

最近出现了几个用于编写基于Web的桌面应用程序的框架。例如。 SproutCoreCappuccino。你有使用它们的经验吗?你有什么印象?我错过了其他一些框架吗?

我在StackOverflow上看过related questions,但它们主要生成标准答案,例如“使用jQuery或MochiKit或MooTools或Dojo或YUI”。虽然有些人提供non-standard answers,但他们似乎没有经验使用这个框架。

任何人都可以分享为浏览器开发类似destop的应用程序的真实体验吗?

8 个答案:

答案 0 :(得分:7)

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

我更喜欢ExtJS的方法,它可以为您提供丰富的小部件,同时保持UI尽可能接近浏览器。

答案 1 :(得分:6)

由于速度问题,这些高级框架导致了许多更大的(如:非平凡的)应用程序,我们只使用普通的jQuery。在我们的测试中,所有高级框架在存在许多可拖动对象或多个放置目标的情况下以及在屏幕上显示长列表(具有> 1000条目)的情况下发生故障。

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

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

提高效果的一些提示:

  • 尽可能在HTML上呈现HTML 服务器
  • 保持HTML简单 可能的。
  • 避免使用许多元素 在DOM树中。
  • 避免递归 表结构(IE突然停止 相对较少之后展示它们 嵌套水平)。
  • 删除隐身 DOM树中的元素。
  • 移除 之前来自DOM树的东西 更改它们然后重新插入 他们,而不是改变他们 当他们在树上时。

答案 2 :(得分:3)

我也是,作为小发明,推荐EXT JS。他们的许可证已经改变,它可能不适用于所有人,但如果你想做像桌面这样的东西,它仍然是一个很好的选择。

以下是桌面环境的示例页面:http://extjs.com/deploy/dev/examples/desktop/desktop.html

答案 3 :(得分:1)

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

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

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

答案 4 :(得分:1)

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

答案 5 :(得分:1)

我喜欢qooxdoo,虽然它采用了JS的OOP方法而不是原型,但它是一个可靠的框架,并且具有很多功能。

答案 6 :(得分:0)

我对SproutCore或Capuccino没有任何经验。但是已经尝试在Django之上使用Dojo进行这种工作。只能告诉你它很慢而且有错误。

答案 7 :(得分:0)

extjs可能会有所帮助。 http://dev.extjs.com/deploy/dev/examples/