当前位置: 首页 > 面试题库 >

异步javascript事件的顺序

史昊焱
2023-03-14
问题内容

我有以下代码:

$("#submit_financials").live('click', function(event){
    event.preventDefault();

    // using serialize here to pass the POST variables to the django view function
    var serialized_data = $("#financials_filter_form").serialize()

    $.post("/ajax/custom_filter/", serialized_data, function(response){
        // create a graph
    });
    $.post("/ajax/force_download/", serialized_data, function(response){
        alert('hello');
    });

});

但是,当我执行此代码时,在图形 之前 会收到响应“ hello” 。为什么会这样呢?我将如何改变它以便我首先得到图形?


问题答案:

异步,您永远不知道哪个函数先运行\先完成…

想想异步操作,例如告诉一群人跑1英里,您知道谁会先完成吗?(是的,乔恩·斯基特,然后是查克·诺里斯…)

您可以使用Callack来运行第二个ajax:

$.post("/ajax/custom_filter/", serialized_data, function(response) {
    // create a graph
    ...
    ...

    $.post("/ajax/force_download/", serialized_data, function(response) {
        alert('hello');
    });
});​


 类似资料:
  • 本文向大家介绍JavaScript 异步操作和事件循环,包括了JavaScript 异步操作和事件循环的使用技巧和注意事项,需要的朋友参考一下 示例 常见的JavaScript编程环境中许多有趣的操作都是异步的。例如,在浏览器中,我们看到类似 在Node.js我们看到的东西像 这与事件循环如何配合? 这是如何工作的,当这些语句执行时,它们告诉主机环境(即Node.js分别为浏览器或运行时)关闭并可

  • 我有一个UserControl上的事件,我正在听: 具有以下签名: 在以下情况下,如何调用此异步方法: 不阻塞GUI线程 在调用我的异步方法后能够调用 能够在正确的(GUI)线程中调用。 我所尝试的: -- -- --

  • 然后,在发现步骤之后,它注册方法。 查看由JBoss Weld2提供的方法,我看到: 那么我的问题是,这些方法不会被调用两次吗?我的意思是,它们可能被注册两次,首先通过容器本身,然后通过调用方法。

  • 接收信号 import signal import os import time def receive_signal(signum, stack): print('Received:', signum) # Register signal handlers signal.signal(signal.SIGUSR1, receive_signal) signal.signal(si

  • 我正在尝试js中的es6以及async/await。 我所做的是: HTML代码 Js代码在单独的example.Js文件中,该文件通常包含在html中。 这个很好用。但是由于我必须使用wait for其他函数,在examplefunction()中,我使用了普通的arrow函数来异步,如下所示 现在我正在得到 未捕获的SyntaxError:await仅在异步函数中有效 我被困在这里,我做错了什

  • 本文向大家介绍Javascript异步执行不按顺序解决方案,包括了Javascript异步执行不按顺序解决方案的使用技巧和注意事项,需要的朋友参考一下 案例分析: 比如执行懒加载时候,onscroll 事件触发多次事件时候会调用多次 ajax 回调事件,由于每个事件返回先后次序并不能保证和触发前一致,所以在数据响应返回后所添加的数据顺序就很在 push 到数组上顺序不一致。 例子1: 这里的并发“