【问题标题】:How to fix performance in AJAX based websites for spotty networks?如何为不稳定的网络修复基于 AJAX 的网站的性能?
【发布时间】:2015-08-26 21:22:24
【问题描述】:

过去几周我一直在旅行,发现 Ajax 用于构建网站的方法存在问题。我知道网页只请求它需要的部分是服务器最有效的方法,但是当在信号来来去去或被供应商限制的环境中工作时,大多数在此模型上运行的网站变得完全没有响应并且每交互变成了几分钟的等待。

在带宽有限的情况下,最佳性能通常来自将所有内容都放在一个页面上的网站,该页面在发送之前为用户构建。我知道这不是一种安宁的方式,但我想知道这个解决方案是否有中间立场。

有没有一种方法可以批量处理许多不同的 AJAX 调用,其中用户只会向服务器发送一个大型调用,然后服务器会编译列出的所有内容,然后在一个堆中返回它?或者这是尚未形成标准并且最终需要定制服务器架构的事情?

【问题讨论】:

  • 一种选择是提供混合解决方案。我的意思是初始页面加载,无论您请求什么页面,都完全呈现在服务器端。然后,您在页面上所做的任何需要更改 ui 的操作都是通过 ajax 请求发生的。如果这些请求中的任何一个失败,页面刷新将再次导致服务器呈现整个页面。这当然说起来容易做起来难,除非你的服务器端语言和你的客户端语言是一样的,否则你会有一些重复的逻辑。

标签: json ajax rest single-page-application


【解决方案1】:

在带宽极其有限的情况下,您尝试做的任何事情都会很痛苦。

是的,在这种情况下,频繁地通过多个请求打开与服务器的连接(这是非常典型的 ajax 单页应用程序)会使体验比打开一个与服务器的连接更差。

但是,您需要问问自己,您是希望自己的 Web 应用程序迎合连接速度快的客户,还是迎合连接速度慢的客户,并相应地设计您的 Web 应用程序。如果您只是为了适应速度较慢的客户端,那么连接速度较快的客户端的用户体验将会受到影响,反之亦然。

您也可以决定通过为每个观众创建一个版本来迎合这两个观众,但这是很多额外的工作

我不知道您的 Web 应用程序是做什么的。但是,如果只是为了“查看”数据,那么也许您可以从一开始就加载所有数据。但是,如果您的 Web 应用程序包含大量数据操作功能,那么您别无选择,坚持使用 Ajax 并获得更好的互联网连接。

如果您想批处理您的请求,那么您的 Web 应用程序需要这样设计,这样您就可以在单击“保存”按钮之前在客户端完成您需要做的所有事情这将收集您所做的所有更改并在 1 个请求中全部发送。

您应该始终根据客户的情况构建您的 Web 应用程序。如果您经常出差,那么严格来说这可能是您的问题,永远不会是您客户的问题。在这种情况下,坚持使用 ajax 并获得更好的互联网连接。

如果客户是你自己,那么你可以做任何你想做的事来减轻你的痛苦,包括从一开始就加载所有东西。

不幸的是,没有神奇的解决方案。

希望对你有帮助!

【讨论】:

  • 保存更改功能可能会有所帮助。 :) 我并没有特别要求我的情况,(我个人会去裸露并将一切都保存在 ssh 隧道中)我更多地要求,因为我在在线 3G 网络中遇到了大量的延迟,但仍然存在世界上某些地方在 2g 上运行,我很好奇是否有解决此限制的软件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-12
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 2011-02-05
  • 2015-06-25
  • 2013-03-10
相关资源
最近更新 更多