最近出现了几种用于编写基于Web的桌面应用程序的框架.例如SproutCore和Cappuccino.你有使用它们的经验吗?你有什么印象?我错过了其他一些框架吗?
我在StackOverflow上看过相关的 问题,但它们主要生成标准答案,如"使用jQuery或MochiKit或MooTools或Dojo或YUI".虽然有些人给出了非标准的 答案,但他们似乎没有使用这个框架的经验.
任何人都可以分享为浏览器开发类似destop的应用程序的真实体验吗?
就我而言,卡布奇诺是不做的一个例子.他们在JavaScript之上实现了另一种语言,这已经带来了缓慢的问题,而浏览器开发人员已经在努力应对,而最糟糕的是,他们完全不依赖于浏览器小部件,打破了所有用户导航体验.例如,他们实现了自己的滚动条,主要的缺点是使用鼠标滚轮将不再起作用!
我更喜欢ExtJS的方法,它为您提供丰富的小部件,同时保持UI尽可能接近浏览器.
由于速度问题,这些高级框架导致许多更大的(如:非平凡)应用程序,我们只使用普通的jQuery.在我们的测试中,所有高级框架在存在许多可拖动对象或多个放置目标的情况下以及在屏幕上显示长列表(具有> 1000个条目)的情况下发生故障.
部分原因是由于IE6和IE7的问题(在DOM树达到一定复杂性后性能突然开始恶化),但部分原因是这些框架产生的开销.
所以我不推荐任何高级框架.我的建议是使用jQuery并直接使用DOM.
一些提高性能的技巧:
在可能的情况下,在服务器上呈现HTML.
保持HTML尽可能简单.
避免在DOM树中使用许多元素.
避免递归表结构(IE在相对较少的嵌套级别后突然停止显示它们).
从DOM树中删除不可见的元素.
在更改它们之前从DOM树中删除它们然后重新插入它们,而不是在它们在树中时更改它们.