【问题标题】:making many ajax requests instead of one request发出许多 ajax 请求而不是一个请求
【发布时间】:2013-06-11 21:54:29
【问题描述】:

我编写了一个代码来从数据库中删除表中的文章。一切正常,但是当我看到来自 firebug NET 选项卡的请求时,它显示了 11 个请求而不是一个。我的代码有什么问题吗?我已在此处附加了我的 firebug NET 选项卡结果

   //delete form start...........
            $("#pard_admin").on("click", ".deleteArticle", function (event) {

                event.preventDefault();
                var data = $(this).closest('tr').find('td:first').html();



                $.ajax({

                    url: "../pard_site/view/delete.php",
                    type: "POST",
                    data: "deleteId=" + data,

                    success: function (response) {
                        $("#pard_admin").load('../pard_site/view/articles.php');

                    }
                });




            });
            //delete form end...........

【问题讨论】:

    标签: jquery ajax firebug


    【解决方案1】:

    你应该看到两个请求:

    • 一个$.ajax()
    • 一个load()

    多次请求最可能的原因是多次附加委托的点击处理程序。它需要附加一次,而不是每行一次。

    您可以将两个请求减少为一个,如下所示:

    var $pard_admin = $("#pard_admin").on("click", ".deleteArticle", function(event) {
        event.preventDefault();
        var $row = $(this).closest('tr');
        $.ajax({
            url: "../pard_site/view/delete.php",
            type: "POST",
            data: { "deleteId": $row.find('td:first').text() },
            success: function() {
                $row.remove();//or similar, depending on exactly what should disappear from the interface on successful delete.
            }
        });
    });
    

    【讨论】:

    • var $pard_admin 为什么会这样?
    • 好点。分配并不是真正必要的。这只是保持对$("#pard_admin") 的引用的一种方式,以防其他地方需要它。这样就不必重新发现 DOM 节点,这很“昂贵”,尤其是在大型 DOM 中。
    • 那么当我需要它时我该如何调用它。我想为它添加另一个 jquery 部分吗?
    • 您可以在代码的其他地方使用$pard_admin 代替$("#pard_admin")。唯一的附带条件是 (a) 必须已经进行了分配,并且 (b) $pard_admin 在试图使用它的语句的范围内。请不要对此挂断 - 这是一个附带问题,我可能应该从我的回答中省略任务。
    • 其他的你都明白了吗?
    猜你喜欢
    • 1970-01-01
    • 2018-11-05
    • 2015-07-08
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    相关资源
    最近更新 更多