【问题标题】:when to choose between mvc post and ajax何时在 mvc post 和 ajax 之间进行选择
【发布时间】:2013-08-20 08:35:33
【问题描述】:

我们有一个使用 mvc 3 创建的系统,并且有很多来自我们视图的 ajax 调用。

存在许多性能问题(与 ajax 无关),因此我们正在研究是否可能从头开始。

屏幕主要是设置屏幕,因此我们会取回一些数据,进行编辑和保存。

我很难找到关于何时使用 ajax 以及何时坚持使用好的旧帖子的任何有价值的材料。

关于何时使用什么...,是否有人对一个好的经验法则或链接有任何意见?

如果我们确实遵循了重写规则,它将使用 mvc 4。

【问题讨论】:

  • 好问题,@Simon。如果您查看其他问题,您可以找到答案,例如stackoverflow.com/questions/8486983/…
  • @ElvinArzumanoğlu 您链接的问题是关于 GET 和 POST 之间的区别。他们询问何时使用 AJAX 和标准同步请求。
  • 我写了“例如”。但我发现这个链接大约 2-3 分钟。所以每个人都可以找到这样的问题。
  • 有没有人有链接来回答所提出的实际问题? :)
  • 就个人而言,我更喜欢只使用完整的发布操作进行导航(例如,列表视图到详细视图,控制器在首次保存后从 /Create 重定向到 /Edit/{Id} 等)和所有其他交互通过 JQuery/KnockoutJS(保存、添加子数据等)。现在有很多非常强大的客户端框架,它们可以提供更好的用户体验,同时又不会让你的视图因大量的 JavaScript 而混乱。

标签: asp.net-mvc jquery asp.net-mvc-4


【解决方案1】:

要获得快速流畅的 UI 响应,请使用 AJAX,因为它不会在每次执行操作时重新加载页面。 使用 GET 请求查看信息,使用 POST 请求进行编辑/保存。

现在 AJAX 请求可以通过 GET 或 POST。 GET 请求用于查看某些内容,而不进行编辑,而 POST 请求用于当您希望编辑某些内容时。当不想暴露敏感数据时使用 POST。使用 POST 时,请求的数据进入请求的主体,而不是 GET。在 GET 中,请求的数据附加到 URL。

Eg. GET REQUEST
    example.com/blog/?name1=value1&name2=value2 HTTP/1.1

POST REQUEST
    example.com/blog/ HTTP/1.1
    Host: abc.com
    name1=value1&name2=value2

此外,包含敏感信息的用户登录页面将使用 POST 请求进行身份验证,而在 Google 上的查询是 GET 请求,我们可以验证看到我们的搜索词附加到 google.com 网址。

【讨论】:

    【解决方案2】:

    当你的老板说屏幕闪烁时使用 AJAX。

    【讨论】:

      【解决方案3】:

      这主要是可用性和行为的问题。因此,这是主观的。您必须问自己(或您的用户)。您希望页面(或元素)如何表现?如果您不在乎是否有往返,那么标准的发布/重定向/获取可能是合适的。如果您想在操作后保持当前页面状态,那么 ajax 调用可能是更好的选择。

      他们都做同样的事情,只是以不同的方式做。你必须决定你希望它的行为方式。

      【讨论】:

        【解决方案4】:

        当结果是您的页面没有显着变化时(如果您停留在同一页面上并且只发布一小部分内容并且可能重建页面的一小部分),我会说部分帖子 (AJAX) 是有意义的)。

        如果您要使用新数据重建整个页面,或者显然如果您要重定向到其他地方,那么完整的帖子是有意义的。

        AJAX 调用明显更小更快,仍然可以提供相同的服务器内容(会话、身份验证等),并且仍然可以基于模型返回部分视图,因此您甚至不必丢失 MVC 模式.它有点更多的 javascript,但如果您所做的只是发布一个小帖子并期望对您的页面进行小幅更改,那么 AJAX 可以显着改善用户体验,同时减少带宽。

        【讨论】:

          猜你喜欢
          • 2011-08-13
          • 1970-01-01
          • 2011-01-29
          • 2010-12-06
          • 2012-04-13
          • 2013-06-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多