小编典典

getJSON同步

ajax

目标:我想要的是每次从数据库中获取数据并刷新main.php(通过draw_polygon更加明显)(每次在$
.ajax之后添加到commit_to_db.php中)。

所以基本上我有一个main.php,它将ajax调用另一个php来接收将保存到数据库的数组,而json调用另一个php返回一个数组将被main.php使用。

$(document).ready(function() {
    get_from_db();
    $('#button_cancel').click(function(){
       $.ajax({
          url: 'submit_to_db.php',
          type: 'POST',
          data: {list_item: selected_from_list},

          success: function(result){
             ...
             get_from_db();
          }
       });
    });
    function get_from_db(){
         $.getJSON('get_from_db.php', function(data) {
             ...
             draw_polygon(data);
         });
    }
 });

就我而言,我所做的是一个get_from_db函数调用,该函数getJSON实际上是从数据库中获取数据,而这些数据通常用于draw_polygon。但是,那应该怎么做?我是一个完全的新手,getJSON老实说,这是我第一次尝试使用Ajax。所以我的问题是:异步实际上如何工作?是否有其他的办法解决这个,而不必调用函数get_from_dbgetJSON(这是不同步的,是它那为什么它时,它不是一个函数内没有更新页面?)所有的时间-
就像$.ajaxasync: false(顺便说一句,我无法使它正常工作。我的方法行得通,但是我认为也许还有其他更好的方法可以做到这一点。我很想学习如何。提前致谢。我希望我有任何道理。

为了更加清楚,这是我想要实现的目标:

  1. @start页,从数据库中获取数据(当前通过getJSON
  2. 油漆或绘制在canvas使用data
  3. 当我单击完成按钮时,它将更新数据库
  4. 我想再次自动获取数据以重新绘制画布中的更改。

阅读 360

收藏
2020-07-26

共1个答案

小编典典

异步确实意味着该请求在后台运行,并在收到响应时回调您的函数。如果您想获得结果但允许在请求中使用您的应用程序,则此方法是最佳方法。如果要直接响应,请查看同步请求。此请求将暂停脚本执行,直到得到响应为止,并且用户在收到响应之前无法执行任何操作。您可以通过以下方式进行切换:

async: false,

因此,例如:

$.ajax({
    url: "myurl",
    async: false,
    ...
})
2020-07-26