有不同的JavaScript框架,像jQuery,Dojo,mooTools,Google Web Toolkit,YUI等等,哪一个适合高性能网站?
发布于 2009-07-28 08:32:21
(完整免责声明:我是Dojo开发人员,这是我的非官方观点)。
所有主要库都可以在高负载场景下使用。有几件事需要考虑:
初始加载
初始加载会影响您的响应时间:从请求网页到响应并处于工作模式。要做的琐碎事情有:
这个想法是发送更少--对服务器好,对客户端也好。
不那么琐碎的事情要做:
后者的例子:将你的模块分为必要的(例如,核心逻辑)和非必要的(例如,帮助器:工具提示、提示、验证器、帮助工具、各种“渐进式增强器”等等)。这个想法是,经常有一些事情是不重要的,但对于临时用户⇒他们可以延迟。
我们可以先加载必要的模块,然后异步加载其余的模块。例如:如果用户想要编辑一个对象,我们需要首先显示它,然后我们有几百毫秒的时间来加载其余的内容:查找表、提示等等。
显然,当您使用的框架支持异步加载模块时,它会有所帮助。Dojo内置了此功能。
分发文件
每个人都知道,由于浏览器对从同一站点并行下载的数量的限制,从不同的域加载资源(图像,CSS,JavaScript)是有益的:
JavaScript应用程序中一个经常被忽视的优化是使用CDN
同样,Dojo长期以来一直支持CDN,并由AOL CDN和Google CDN公开发布。后者也附带了几乎所有流行的JavaScript工具包。显然,如果你觉得需要的话,你可以创建你自己的CDN和你自己的特定于CDN和应用程序的Dojo构建-它是微不足道的,并且有很好的文档记录。
通信带宽
不同的工具包又有什么不同呢?XHR就是XHR。
您需要尽可能减少服务器上的负载。分析所有的流量,并考虑通过管道发送多少静态/不可变的内容。例如,通常情况下,许多HTML在几个页面上是多余的:页眉、页脚、菜单等等。您真的需要每次都发送所有这些内容吗?
一个显而易见的解决方案是从静态超文本标记语言+ JavaScript的“渐进式增强”转移到真正的“一页”JavaScript应用程序。同样,这是一个经常被忽视的优化,但却是最有价值的优化。
虽然这个想法听起来很简单,但实际上并不像看起来那么简单。一旦我们从一行程序转到应用程序,我们就会遇到过多的问题,其中最大的问题是打包:你的组件是什么,工具包提供了什么组件,以及如何打包和交付它们。
Dojo提供了模块、用于一般类的良好OOP、小部件(可选HTML和相关行为的组合)以及许多使用它们的工具。您可以:
>F252>
在客户端构建应用程序时,所有这些功能都有很大帮助。That's why I like Dojo。
显然,优化高负载网站的方法还有很多,但根据我的实践,这些都是最适合JavaScript框架的方法。
发布于 2009-07-28 04:25:10
很简单:所有的。
所有框架的构建都是为了提供最快的性能,并为开发人员提供有用的功能和工具。您的选择应该基于您的需求。
JavaScript在客户端运行,因此不会影响服务器性能。服务器端唯一的区别是用于将.js文件传输到客户端的带宽量。
我个人很喜欢MooTools,因为它既满足了我的需求,又坚持了我的编码理想。很多人采用了jQuery (我个人不喜欢它,并不意味着它不好)。其他的我都没用过。
但没有一个比另一个更好,这都是一个需求和个人偏好的问题,。
发布于 2009-07-28 04:29:06
我真的不认为这有什么不同。大型应用程序似乎混合使用了Jquery和prototype以及其他工具。
坦率地说,对于访问量很大的网站,使用什么并没有区别,因为我们谈论的是客户端技术。加载文件后,实际上没有任何开销。因此,如果您只想做一件简单的事情,并且多个框架都支持它,那么可以使用文件大小较小的框架(当然,如果它的性能真的很差,可以使用其他框架!)
这就是说,google托管了很多框架,所以即使这也不是问题。我使用Google托管的Jquery,我非常高兴。
http://code.google.com/apis/ajaxlibs/
后端和服务器应该使用什么是一个完全不同的问题,你会得到一千个不同的答案!
https://stackoverflow.com/questions/1191925
复制相似问题