php - 我应该选择 AJAX 和 JQuery 的复杂性和速度还是 GET 的简单性?

标签 php javascript jquery html ajax

如果用户尝试登录但登录失败,页面应向用户显示错误消息。我认为有两种主要方法可以做到这一点:如果登录信息不正确,则在 HTML 页面和 php 脚本中使用表单操作,使用 header 重定向到登录页面,并使用 $_GET 值(如 loginfailed)。登录页面将检查此值,如果存在,则会显示错误。

我看到的第二种方法是根本不使用表单,而是使用 JQuery 捕获提交按钮的按下情况并使用 AJAX 来确定是否发生错误。 php 文件将回显状态,而 javascript 文件将解释它,如果登录失败,它将使用 JQuery 将错误消息附加到页面上。

现在我将回顾一下我认为每种方法的优缺点。

方法 1 优点:

  • 非常简单,不需要 JQuery、Javascript 和 AJAX。
  • 错误状态也会显示在 URL 中。

方法 1 缺点:

  • 由于存在 header 调用,因此需要重定向。此外,必须重新加载登录页面。这是一个小页面,但仍然是一个重新加载的页面。
  • 状态消息显示在 URL 中。这意味着用户可以在 URL 中输入状态消息,并在页面上接收实际未发生的错误的错误消息。这是一个问题吗?或许。也许不是。

方法 2 优点:

  • 由于它使用 AJAX,因此不需要加载另一个 URL,因此不会加载额外的页面。
  • 此方法使用 JQuery 使用错误消息更新页面,因此不需要重定向。
  • 错误状态不会显示在 URL 中。

方法 2 缺点:

  • 比第一个解决方案复杂得多。
  • 需要外部 JavaScript 文件,并且无论是否使用,每次访问登录页面时都必须加载该文件。
  • 提交按钮的默认行为已被覆盖并取消。它唯一的行为来自于与 javascript 文件的交互。

SO会做什么?如果可能的话,我希望远离诸如“这取决于您的网站将拥有多少流量”之类的答案。

最佳答案

始终使用尽可能最简单的解决方案,直到/除非有充分的理由不这样做。也许完成一些可能(也可能不是)不太理想的事情比最终交付镀金的东西更好。

此外,我通常更喜欢遵循渐进增强策略,这样一切都可以在没有 Javascript 的情况下运行,然后添加 Javascript 使其以改进的方式运行。即使在 Javascript 被禁用的情况下,这也具有功能性的额外好处。

关于php - 我应该选择 AJAX 和 JQuery 的复杂性和速度还是 GET 的简单性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5441312/

相关文章:

php - 从父级访问子级 protected 成员

php - 如何在 php 中使用正则表达式从字符串中提取用户名

javascript - 对来自 url 的点击 API 数据进行排序

javascript - Typescript 未按一致的顺序编译类

jquery - IE 中的 CSS 图像大小问题...响应式设计

javascript - 如何在 Angular ui-router 中的 anchor 单击中启用默认事件

PHP <select> 不填充结果

javascript - 带有 pdf、csv、xls 和复制选项的数据表的 tabletool 问题

javascript - 通过单击按钮旋转图像

PHP 刷新所有级别的输出缓冲