【问题标题】:Sending large data sets. Best approach发送大型数据集。最佳方法
【发布时间】:2016-10-20 07:00:23
【问题描述】:

我使用 Hapi/React/Sequelize/MySQL 堆栈 我有一个客户。根据请求,服务器可能会发送 1 个或最多 500k 个结果。这些结果是一个包含对象的数组(每个对象可能有 15 个属性)。发送大列表不是一种选择,因为它需要很多时间来记忆。我还需要对结果集进行一些计算。 所以我想以块的形式发送数据,每个可能 10k(3 秒)。 我可以想到两种方法。

方法一(长轮询):

  1. 我在服务器上发出初始请求,服务器只返回产品的 ID。
  2. 例如,我得到 100k 个 ID。客户端以 10k 块发送 AJAX 请求。一旦达到 100k,就会向客户端显示结果。

方法二(套接字):

  1. 客户端发出请求。套接字已打开。
  2. 服务器通过套接字发送 10k 的块。 套接字可以处理那么多流量吗? 10k 大小约为 300kb。

还有其他方法吗?

【问题讨论】:

    标签: javascript mysql socket.io hapijs


    【解决方案1】:

    我建议对每 10k 或更低的块进行并行请求,然后在计算后显示结果,而其余的仍会加载,因为它会附加主显示等等:)

    EDIT: pseudocode
    listOfProductsIDArray = get id of products;
    itemsPerLoad = 10;
    mainDisplay = array;
    for loop (index = listOfProductsIDArray/itemsPerLoad ){
    
    send AJAX request with index;
    if(AJAXrequest is success)
           procees results
           mainDisplay appends results from mysql
    }
    
    mysql side::
    select * from products limit AJAXindex,itemsPerload
    return results
    

    【讨论】:

    • 可能有一个例子? :)
    • 已编辑,如果接受请留下一票:)
    猜你喜欢
    • 2020-11-04
    • 2013-10-04
    • 2016-09-28
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    • 1970-01-01
    • 2021-12-31
    相关资源
    最近更新 更多