Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确定是否需要等待ajax结果显示在前端_Javascript_Ajax_Frontend - Fatal编程技术网

Javascript 如何确定是否需要等待ajax结果显示在前端

Javascript 如何确定是否需要等待ajax结果显示在前端,javascript,ajax,frontend,Javascript,Ajax,Frontend,在web应用开发中,一些功能需要通过ajax修改数据库,并且需要在前端显示修改的结果。 例如,使用ajax在前端修改页面标题。在这两种选择中,我总是犹豫不决: 前端发送ajax修改页面标题,并等待ajax结果。然后在获得ajax结果后显示结果 前端首先使用javascript显示预期结果,然后发送ajax。ajax返回后检查结果,如果成功,什么也不做,否则报告错误 第一个选项更可靠,而第二个选项可以提供更好的用户体验 有什么想法吗?或者任何关于这方面的文章? 非常感谢。虽然您提到的第一个变体是最

在web应用开发中,一些功能需要通过ajax修改数据库,并且需要在前端显示修改的结果。 例如,使用ajax在前端修改页面标题。在这两种选择中,我总是犹豫不决:

  • 前端发送ajax修改页面标题,并等待ajax结果。然后在获得ajax结果后显示结果
  • 前端首先使用javascript显示预期结果,然后发送ajax。ajax返回后检查结果,如果成功,什么也不做,否则报告错误
  • 第一个选项更可靠,而第二个选项可以提供更好的用户体验

    有什么想法吗?或者任何关于这方面的文章?
    非常感谢。

    虽然您提到的第一个变体是最流行的,但您描述的第二个变体也在网络中广泛使用,用用户体验的术语来说,它被称为“乐观行动”——最好的例子是Facebook的“喜欢”按钮

    除非您有很好的理由实施乐观操作,否则请使用“等待服务器响应”方法,因为它是最可靠的方法,在某些情况下可能非常重要,而在其他情况下则不那么重要。使用第二个选项的唯一好处是用户满意度的轻微提高,当我们谈论大量使用这种感觉的大型网站(如社交网站)时,这种情况可能会出现,但在大多数项目中可能与此无关

    此外,等待一个动作完成的时间很短,这也是用户准备好并非常满意的事情。所以我想说,除非你真的需要,想要,并且有能力使用乐观的回调方法

    为了在让用户等待的同时保持最佳用户体验,最好向他们显示一些加载指示器。您可以使用$ajax回调错误或本地控制它。但是,如果您有很多这样的操作,您可以开发一个全局加载程序,它将在每次发出异步请求时启动—为此,请使用以下示例:

    // make a loading div and position it fixed with high z-index
    // attach it to $loader varaible
    var $loader = $('#loader');
    $(document)
      .ajaxStart(function () {
        $loader.fadeIn();
      })
      .ajaxStop(function () {
        $loader.fadeOut();
      });
    

    这似乎是一种判断,可能取决于你的要求。就个人而言,为了简单起见,我倾向于做1,但偶尔也会做2。我将投票结束,因为没有明确的答案,只有意见。如果你知道用户将保存的内容是有效的,那么你可以立即显示结果,然后保存。但是如果您需要进行任何验证,我会等待ajax调用返回,然后显示。我觉得只要用户一点击,你就给他们一些反馈,这两种方法都不是一种糟糕的用户体验。选项1也可以,只要你在保存数据时不阻止用户做其他事情。#2,如果实施得当,它与#1一样可靠,但提供了更好的用户体验experience@Shan若我们有需要检查数据库中存在数据的验证项,那个么等待ajax结果是不可避免的。另一方面,我只是想让用户感觉自己和使用本地应用一样棒。谢谢@bwitkowicz,你的答案非常详细