【问题标题】:ASP.NET Send big C# list<int> as blob or arraybuffer to javascriptASP.NET 将大 C# list<int> 作为 blob 或 arraybuffer 发送到 javascript
【发布时间】:2017-11-17 16:50:03
【问题描述】:

我有一个非常大(4-5 百万)的 C# 整数列表,我想发送到网站,以便可以通过 javascript 处理它

我正在考虑使用 arraybuffer 来实现这一目标,但我不知道如何将数组缓冲区(从我的后端)发送到前端(到我的 javascript),所以我可以将我的 c# 列表数组反序列化为一个类型化的 javascript 数组.

我一直在研究使用 websockets,那会比 ajax 快吗?

我打算在 web worker 中对这个数组进行反序列化并放入 indexeddb。

我还想在一段时间内(几分钟)将大约 40 个这样的数组放入 indexeddb。

【问题讨论】:

  • WebSockets 用于连续发送和接收。由于这是一次性的事情(对吗?),所以不需要这样的开销。我会坚持使用 JSON。
  • 是的,但我计划在一段时间内在 indexeddb 中引入 40 个这样的数组,不会是一次性的,而是 40 个,但你是对的,它们不值得。

标签: javascript c# websocket web-worker


【解决方案1】:

您应该在一段时间后使用 ajax 来调用服务器。 WebSockets 可能会失败,因为它不是用来传输大量数据的。

您可以使用 jsstore 进行 indexeddb 查询(它在 web worker 中执行查询)。如果您使用的是普通的 indexeddb,那么它也很好。因此,如果您将 jquery 用于 ajax,将 jsstore 用于 indexeddb。代码会是这样 -

$.get(url, function(results){
   //considering results is array of integer
   var Connection = new JsStore.Instance('Db_name');
   Connection.insert(
   {
     Into:'Table_name',
     Values:results,
     OnSuccess: function(rowsAdded){
       alert(rowsAdded +' rows added');
     },
     OnError: function(error){
       console.log(error)
     }
   })
 })

您可以在一段时间后使用 setInterval 调用上述代码。

【讨论】:

    猜你喜欢
    • 2018-05-26
    • 2019-02-15
    • 2018-02-07
    • 2015-09-22
    • 2019-10-03
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    相关资源
    最近更新 更多