2

过度使用 AJAX 会影响性能吗?在大型 Web 应用程序的上下文中,您如何处理 AJAX 请求以控制异步请求?

4

9 回答 9

9

过度使用任何东西都会降低性能;在必要时使用 AJAX 将提高性能,特别是如果替代方案是到服务器的完整整页往返 [asp.net 术语中的“回发”]

于 2008-09-19T04:13:31.667 回答
4

这个故事有两个方面。

从客户端的角度来看,AJAX 通常会提高性能。与其加载整个页面,不如在需要时从服务器请求少量数据。鉴于 HTML 页面经常引用许多相关文件(图像、css、javascript 等,每个都需要来自服务器(或缓存)的命中),明智地使用 AJAX 的客户端性能可能非常出色。

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

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

我的终极建议 - 专注于创造良好的用户体验,智能开发,收集尽可能多的指标,并在您知道需要时进行优化。

于 2008-09-19T04:31:56.940 回答
1

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

但是,如果您有大量的 javascript 和标记,并且通过您的 xmlhttprequests 传输大量数据,那么是的,您会看到性能下降。这实际上取决于您希望您的网站如何运行,如果正确雕刻,通常可以避免任何退化。

于 2008-09-19T04:13:25.427 回答
1

究竟表现什么?我将假设您指的是应用程序在用户体验方面的性能。

Ajax 似乎最擅长的是仅在需要时才引起网络流量。它不是一次性下载一个很棒的网页,而是以尽可能快的方式只下载需要的内容。

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

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

我更喜欢将用于数据传输的 Ajax 方法和用于漂亮界面的 jQuery 等客户端库混合在一起。

于 2008-09-19T04:17:15.010 回答
1

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

过度使用 AJAX 很容易使服务器因大量无聊的请求而过载,并且还可能成为客户端 CPU 的负担。相反,AJAX 也可用于为每个请求提供少量 HTML 和其他代码,而不是整个页面,这至少对服务器的负担较小。

于 2008-09-19T04:17:35.477 回答
0

Ajax 只是一个普通的 HTTP 请求,所以只要您的服务器能够处理这些请求,就不会出现问题。Ajax 的好处是用户可以更快地感知性能,因为页面不必为每个用户操作重新加载和重新绘制自身。

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

于 2008-09-19T04:13:42.663 回答
0

AJAX 与任何技术一样,根据情况及其实施方式,可能是好事也可能是坏事。如果您对异步过程有特定需求,那么它是一个很好的工具。但是,如果您不负责任地使用它,您可能会遇到麻烦。如果您确实使用它,请尝试找到一个可以完成大部分繁重工作的良好框架,并了解 AJAX 的一些缺点...... http://learningremix.net/w2007integ/vangoori/2007/01/the_downsides_of_ajax。 shtml

于 2008-09-19T04:16:39.833 回答
0

我会同意这里的很多其他帖子。如果您以一种智能的方式使用它(即,不是每 30 秒使用一次 ajax),那就没问题了。我在我的网站上使用 ajax(还有一个 js 免费版本),从客户的角度来看,ajax 版本的加载速度从几乎相等到快四倍不等。这完全取决于网站的设计(图形和其他内容)以及您要更新的内容。

不利的一面是,由于您必须加载一些框架(即使您像我一样创建自己的框架),所以第一页的加载速度或任何完全刷新都会稍慢一些,并且确实会增加处理负载. 但这只是因为 ajax 提高了生产力,因此用户可以提出更多请求/更新

于 2008-09-22T17:40:17.760 回答
-1

如果站点很忙,那么它最终会终止服务器,除非您在农场中。至于网站本身,它不应该

于 2008-09-19T04:14:05.877 回答