我正在开发一个实时涉及多个用户交互的应用程序。它基本上涉及从每个用户到服务器的大量AJAX POST / GET请求 - 这反过来又转换为数据库读取和写入。从服务器返回的实时结果用于更新客户端前端。
我知道优化是一个非常棘手的专业领域,但是你有什么建议让我在这里获得最大的操作速度 - 速度是至关重要的,但是目前这些POST请求中的一些需要20-30秒才能返回。
我考虑过优化它的一种方法是将POST请求分组并将它们作为8-10组发送到服务器,而不是触发单个请求。我目前没有在数据库方面使用缓存,并且实际上并不太了解它是什么,以及在这种情况下它是否有用。
另外,AJAX POST和GET请求在速度方面会产生相同的开销吗?
答案 0 :(得分:1)
不是连续点击数据库,而是缓存经常使用的数据项(根据数据不经常更改的有效期限)。
您可以通过缓存某些数据客户端来减少与服务器的通信吗?
GET的目的就是它的名字 暗示 - 获取信息。它是 打算在你的时候使用 阅读信息显示在 页。浏览器将缓存结果 从GET请求和相同的GET 请求再次提出然后他们会 显示缓存的结果而不是 重新运行整个请求。这是 不是浏览器处理中的缺陷 但是故意设计工作 这样就可以让GET更多了 在使用呼叫时效率很高 他们的预期目的。 GET电话是 检索要在页面中显示的数据 并且预计不会更改数据 通过这样的电话在服务器上等等 应该重新请求相同的数据 期望获得相同的结果。
打算使用POST方法 你在哪里更新信息 服务器。预计这样的电话会 对存储在的数据进行更改 服务器和返回的结果 两个相同的POST调用可能很好 完全不同于一个 自初始值以来的另一个 在第二次POST呼叫之前 与初始值不同 在第一次打电话之前因为 第一次通话至少会更新 其中一些价值观。一个POST电话会 因此总能获得回应 从服务器而不是保持 缓存先前回复的副本。
答案 1 :(得分:0)
您使用的优化技巧通常与普通网站使用的技巧相同,只需更快的周转时间。你可以研究的一些事情是:
总而言之,你可以做的事情很多很多(而且它们通常归结为更大规模的一般开发实践)。
答案 2 :(得分:0)
常见的调整技巧是: - 使用更多索引 - 使用较少的索引 - 在文件系统,数据库,应用程序或内容上使用或多或少的缓存 - 在任何组件上提供更多带宽或更多CPU功率或更多内存 - 最大限度地减少任何通信的开销
当然,另一种选择是:
0开发一组测试,最好是自动测试,如果您的应用程序正常工作则可以确定
1测量应用程序的“速度”
2确定它变得多快
3确定性能问题的根源:
典型的问题是:网络吞吐量,文件i / o,延迟,锁定问题,内存不足,cpu
4解决问题
5确保它实际上更快
6确保它仍然正常工作(因此上面的测试)
7回到1
答案 3 :(得分:0)
您是否尝试过分析您的应用?
不确定你正在使用什么框架(如果有的话),但坦率地说,从你的问题来看,我怀疑你是否具备技术技能,只是眼睛注意这一点,并找出事情正在放缓的地方。
直言不讳地说,你不应该用复杂的方法来解决你的问题,因为你并不真正理解问题是什么。通过这样做,你更有可能让它变得更糟。我建议你做的是每走一步。很可能你会发现
当你发现出了什么问题时,请修复它。如果您不知道如何,请再次发布。 ; - )