2008-09-19 119 views
1

过量使用AJAX会影响性能吗?在大型Web应用程序的情况下,您如何处理AJAX请求以控制异步请求?Ajax是否会降低性能?

+0

这太含糊了。影响什么表现?什么ajax? – SCdF 2008-09-19 04:12:53

回答

9

多余使用任何东西会降低性能;在必要时使用AJAX可以提高性能,特别是如果替代方案是服务器的完整整页往返[asp.net术语中的'回传']

1

AJAX本身(被异步请求)..不一般。

但是,如果您有大量的javascript和标记,并且有大量数据通过您的xmlhttprequests传输,那么您可以看到性能受到影响。这真的取决于你希望你的网站如何运作,如果雕刻正确,任何降级通常都是可以避免的。

0

Ajax只是一个普通的HTTP请求,因为你的服务器可以处理这些请求,这不会是一个问题。 Ajax的好处在于用户更快感受到性能,因为该页面不必为每个用户操作重新加载和重绘。

如果可扩展性是一个问题,我相信您也正在考虑通过向服务器场添加更多Web服务器来水平扩展系统。无论如何,即使是非Ajax的网络应用也一样。

-1

如果网站很繁忙,那么它最终会杀死服务器,除非你在农场。 至于网站本身,它不应该

0

AJAX,像任何技术一样,根据具体情况以及如何实施,可能是件好事或坏事。如果您对异步过程有特殊需求,那么它是一个很好的工具。但是,如果你不负责任地使用它,你可能会陷入困境。如果您确实使用它,请尝试找到一个很好的框架,以完成大部分繁重工作,并了解AJAX的一些不足之处... http://learningremix.net/w2007integ/vangoori/2007/01/the_downsides_of_ajax.shtml

1

表现什么?我假设你的意思是用户体验方面的应用程序性能。

Ajax看起来最擅长的是仅在需要时才引起网络流量。一次下载Honkin'伟大的网页,而不是以尽可能快的方式下载需要的东西。

然后,如果你做了一些需要更多信息的东西,它就会从网络中获取。

这意味着永远不会下载未使用的东西(如果您设计正确,当然 - 错误代码可以像其他任何环境一样在Ajax中编写)。

我更喜欢将数据传输的Ajax方法和像jQuery这样的客户端库混合使用,以获得非常好的界面。

1

根据具体情况,AJAX可能会产生性能开销,或者实际上可能比不使用AJAX的等功能网站具有更好的性能。

过度使用AJAX可以很容易地让服务器承载大量繁琐的请求,并且也可能成为客户端CPU的负担。相反,AJAX也可以用来传递HTML和其他代码的小部分,而不是每个请求的整个页面,这至少会减少服务器的负担。

4

这个故事有两个方面。

AJAX通常会从客户的角度来提高性能。不是加载整个页面,而是在需要时从服务器请求较少量的数据。鉴于HTML页面经常引用许多依赖文件(图像,CSS,JavaScript等),每个文件都需要从服务器(或缓存)中获取命中),因此,明智地使用AJAX可以提高客户端的性能。

在服务器端,问题变成了需要管理更多连接的问题。轮询应用程序(特别是浏览器内聊天)可能真的开始增加服务器的负载,因为浏览器现在更快速地访问服务器。在一个典型的动态应用程序中(响应是由代码而不是静态文件产生的),你可能会开始遇到问题 - 但这些通常是平衡的,因为你的请求的复杂性往往要低得多(再说一次,你没有不会生成整个页面,而是生成页面的一小部分),因此您的平台在任何情况下都可能获得更高的吞吐量。

任何性能问题的确切结果将取决于许多因素,包括当时的服务器,平台,框架和主要的高潮条件。

我最终的建议 - 着力打造良好的用户体验,智能的开发,收集尽可能多的指标,您可以和优化,当你知道你需要它。

0

我同意在这里的不少其他职位。如果你以智能的方式使用它(即,每30秒不使用ajax),那就没问题。我在我的网站上使用ajax(并且还有一个js免费版本),并且从客户的角度来看,ajax版本可以从几乎相同的速度加载到四倍的速度。这完全取决于网站的设计(图形和其他内容)以及您正在更新的内容。

不足之处在于,由于您必须加载一些框架(即使您创建了自己的框架),您将会对第一页的负载稍微慢一些,或者进行任何完全刷新,并且会增加处理加载了一下。但是,这只是因为阿贾克斯提高了生产力,因此用户可以提出更多请求/更新