javascript - ajax请求的顺序总是不同的

标签 javascript jquery ajax

我有一个必须请求数据库 (ajax) 的 javascript 代码。但是我发现插入是错误的,但是有正确的 sql 请求。所以我添加了一个关于哪个 ajax 请求的警报,以了解代码何时执行。

代码如下:

$.post("/kohana-v3.3.5/ajax/update_simulation", {
                    id_simulation: id_simulation,
                    nom_simulation: nom_simulation,
                    sol_simulation: sol_simulation,
                    station_simulation: station_simulation,
                    iteration_simulation: iteration_simulation,
                    scenario_simulation: scenario_simulation
                }
                , function (result) {
                    console.log(result);
                    alert('update');
                });

$.post("/kohana-v3.3.5/ajax/delete_pousses", {id_simulation: id_simulation}, function (result) {
                console.log(result);
                alert('delete');
            });

$(this).prev('div').find('table .formRows').each(function (i) {
                            alert('here');
                            if (cpt % 2 == 1) {
                                //interculture
                                var $tds = $(this).find('td option:selected'),
                                    culture = $tds.eq(0).val(),
                                    date = $tds.eq(1).text();
                                itk = null;
                            } else {
                                //culture
                                var $tds = $(this).find('td option:selected'),
                                    culture = $tds.eq(0).val(),
                                    itk = $tds.eq(1).val();
                                date = null;
                            }

                            $.post("/kohana-v3.3.5/ajax/insert_pousses", {
                                id_simulation: id_simulation,
                                culture: culture,
                                date: date,
                                itk: itk,
                                rang: cpt
                            }, function (result) {
                                console.log(result);
                                alert('insert');
                            }); //Fin du post

                            cpt++;


                        }); //Fin du each

每次我运行该代码时,警报的顺序总是不同的!有时是“insert update delete”,有时是“update, delete insert” ...

这是一个问题,因为如果删除是最后一个,插入将被删除。那么,这是正常的方式吗?我该如何解决?

最佳答案

javascript 可以异步执行 - 这就是为什么您的 ajax 请求并不总是以相同的顺序执行的原因。您可以将它们设置为 asnyc false(如此处 jQuery: Performing synchronous AJAX requests )或做出类似 promises ( https://api.jquery.com/promise/ ) 的操作以等待 ajax 调用完成。

问候

关于javascript - ajax请求的顺序总是不同的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37326084/

相关文章:

javascript - 尝试在 XYZ 源上使用 minZoom 时出现内存问题

jquery - 为什么 Google Chrome 上的初始页面焦点不会将输入字段更改为绿色?

javascript - jquery 在未嵌套的文本周围添加标签

Javascript 变量随着其他变量的变化而更新

php - 通过 AJAX 注入(inject)受控 HTML 是否是一个安全问题?

javascript - Selenium 测试 : Authenticate with Webauthn

javascript - 将 Maya 场景转换为 JavaScript 或 WebGL

javascript - 提交多个动态表单

php - 调试 AJAX 到 PHP 调用的最佳方法是什么?

javascript - 在更改或文本框离开时在 php 中的 ajax 请求中发布文本框值