并行 ajax 请求还是 sql 查询?[性能方面]

Parallel ajax requests or sql queries? [performance aspect]

本文关键字:性能 方面 查询 sql ajax 请求 并行      更新时间:2023-09-26

我正在设计和实施物业管理系统,我有仪表板,其中包含指定日期间隔的房间预订。

我问的是,与性能[装载室的信息]有关。目前,我有

for (var r = 0; r < rooms.length; r++)
    {
        $.ajax({
        type: 'POST',
        url: '/dashboard/getAllOrders.php',
        data: 'room_id=' + encodeURIComponent(rooms[r].id),
        complete: function (e, xhr, settings) {
            if (e.status === 200)
            {
                var orders = $.parseJSON(e.responseText);
                for (var i = 0; i < orders.length; i++)
                {
                    drawOrder(orders[i]);
                }
            }
        }
        });
    }  

但是,我也可以把它写成:

var room_ids = [];
    for (var r = 0; r < rooms.length; r++)
    {
        room_ids.push(rooms[r].id);
    }
    $.ajax({
    type: 'POST',
    url: '/dashboard/getAllRoomsOrders.php',
    data: { 'room_ids' : room_ids },
    complete: function(event, request, settings)
    {
        if (event.status === 200)
        {
            var orders = $.parseJSON(event.responseText);
            for (var i = 0; i < orders.length; i++)
            {
                drawOrder(orders[i]);
            }
        }
    }
    });

您能否建议我需要坚持哪个选项并提供论据,以证明为什么从性能的角度来看,一个选项比其他选项更好?

如果没有,您能否推荐客户端-服务器应用程序的最佳基准测试实践?

对于非常少量的数据,您可能会看到几乎没有区别,但是,随着roomId数量的增加,您将开始看到第一种方法比第二种方法花费更长的时间,主要是由于带宽。

通过将所有这些请求合并到一个请求中,您可以减少客户端与 Web 服务器以及 Web 服务器与数据库服务器之间的网络流量,因为在这两种情况下,合并请求都无需重复发送标头数据和 sql 查询,而是发送一次,从而减少了网络流量和数据库查找。