【问题标题】:Is it good practice to base a web application on browser AJAX calls将 Web 应用程序基于浏览器 AJAX 调用是否是一种好习惯
【发布时间】:2015-09-23 14:19:24
【问题描述】:

在标准的 MVC Web 应用程序中,是否可以使用 ajax 调用来呈现大部分内容?

我们以 Facebook 为例,它们动态加载大部分内容。 我们应该遵循这种方法吗?我们应该采取哪些措施来确保良好的用户体验和性能?

编辑 让我澄清一下这个问题:

我使用 Facebook 示例是因为我想在类似于 Facebook 新闻提要的应用程序上解决问题:它们之间非常相似的一大组(几乎无限)实体,控制器无法获取明显性能和响应问题。

因此,我们将使用 ajax 调用动态加载项目并使用模板引擎进行渲染。

这种方法合理吗?我们应该怎么做才能保证良好的用户体验、性能和合理的 SEO? (例如,限制同时 ajax 调用的数量等)

【问题讨论】:

  • 相对于什么?真的取决于性能,以及你在拉什么。您需要更具体地说明您所谈论的网络应用类型。
  • 这完全取决于你的情况,在这种情况下唯一的答案是“也许”。
  • 如果您确实通过 Ajax 加载大部分内容,您将必须找到一种方法来获得您想要的任何搜索引擎相关性,因为搜索引擎可能不会看到您所有动态加载的内容。对于许多网站来说,这是一个非常重要的问题 - 足以影响网站的架构。

标签: javascript ajax node.js rest model-view-controller


【解决方案1】:

这个问题有点模糊,因为我认为基于 ajax 的网站的用户体验会因站点而异。这也可能不是发布此问题的最佳论坛。

但是,在我看来,ajax 可以成为改善用户体验的好工具。在不中断用户当前状态的情况下减少页面刷新、呈现新鲜内容和执行任务是一大优势。

但是,如果您的网站很复杂,并且有很多导航,那么 ajax 可能会成为开发人员和用户的噩梦。

这很可能会导致对 JS/JQ 的一些依赖,这可能不是一个选项。

【讨论】:

    【解决方案2】:

    我认为这是个好主意。但是,您需要记住几件事。 Javascript 总是需要时间来加载。 因此,如果您主要在 js 中创建 dom,它肯定会给用户一种在初始加载期间网站速度很慢的感觉。 仅站立静态 html 会更快。 所以这个想法是让大部分静态html和智能地使用javascript来创建dom,这样不仅用户感觉js很快 而且服务器资源也得到了很好的利用。 所以最好的想法是使用两者的智能组合。 对于 ajax 调用来说,总是更喜欢通过 javascript 创建 dom,除非你有大量数据要绑定到你的 dom。 简而言之,这取决于您的要求以及资源和目标用户。

    【讨论】:

      【解决方案3】:

      一些好处可能包括:

      • 服务器可以实现 api 接口,这将允许它与客户端无关
      • 端点更加集中和离散
      • Web 客户端可能更容易开发,只要有明确的 API 规范就可以并行开发

      几个难点可能是:

      • 难以确定每个 api 端点的专注程度?应该返回什么数据?
      • 客户端最终可能会发出许多小的 ajax 请求,大量连接的开销
      • 单个请求失败或加载缓慢时的处理
      • 在渲染 api 返回的数据时考虑执行 dom 操作
      • 每个端点缓存 - 即使端点可能非常集中,前端的单个页面视图在逻辑上可能对应于一组端点

      【讨论】:

        猜你喜欢
        • 2013-02-13
        • 2022-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-17
        • 2013-07-02
        • 2010-11-16
        • 2023-04-07
        相关资源
        最近更新 更多