我正在开发一个应用程序,涉及多个用户实时交互。它基本上涉及从每个用户到服务器的大量AJAX POST/GET请求-这反过来又转换为数据库读写。服务器端返回的实时结果用于更新客户端前端。
我知道优化是一个相当棘手的专业领域,但你能给我什么建议来获得最大的运行速度-速度是最重要的,但目前一些POST请求需要20-30秒才能返回。
我想过的一种优化方式是加入POST请求,并将它们作为一个组8-10发送到服务器,而不是激发单个请求。我目前没有在数据库端使用缓存,也没有太多关于它是什么的知识,以及它在这种情况下是否有用。
另外,AJAX POST和GET请求在速度方面是否会产生相同的开销?
发布于 2009-04-05 07:17:44
缓存频繁使用的数据项,而不是不断地访问数据库(根据数据更改的频率确定过期时间)。
您可以通过缓存一些数据客户端来减少与服务器的通信吗?
顾名思义,GET的目的就是获取信息。它适用于在阅读要在页面上显示的信息时使用。浏览器将缓存GET请求的结果,如果再次发出相同的GET请求,它们将显示缓存的结果,而不是重新运行整个请求。这不是浏览器处理中的缺陷,而是故意设计为以这种方式工作,以便在GET调用用于预期目的时更有效。GET调用正在检索要在页面中显示的数据,而这种调用不会更改服务器上的数据,因此重新请求相同的数据应该会获得相同的结果。
POST方法用于更新服务器上的信息。这样的调用期望对存储在服务器上的数据进行更改,并且从两个相同的POST调用返回的结果很可能彼此完全不同,因为第二个POST调用之前的初始值将不同于第一个调用之前的初始值,因为第一个调用将至少更新那些值中的一些。因此,POST调用将始终从服务器获取响应,而不是保留先前响应的缓存副本。
Ref。
发布于 2009-04-05 07:33:06
你使用的优化技巧通常与普通网站使用的技巧相同,只是周转时间更快。您可以考虑做的一些事情包括:
总而言之,您可以做的事情有很多(它们通常归结为更小规模的一般开发实践)。
发布于 2009-04-05 09:11:43
常见的调整技巧是:-使用更多索引-使用更少索引-在文件系统、数据库、应用程序或内容上使用或多或少的缓存-在任何组件上提供更多带宽或更多cpu能力或更多内存-最大限度地减少任何类型通信的开销
当然,另一种选择是:0开发一组测试,最好是自动测试,以确定您的应用程序是否工作正常。
1测量应用程序的“速度”。
2确定它必须变得多快
3确定性能问题的根源:
典型的问题有:网络吞吐量、文件i/o、延迟、锁定问题、内存不足、cpu 4修复问题。
5确保它实际上更快
6确保它仍然正常工作(因此进行了上面的测试)
7返回到%1
https://stackoverflow.com/questions/718508
复制相似问题