ASP.NET将大型C#list <int>作为blob或arraybuffer发送到javascript

时间:2017-11-17 16:50:04

标签: javascript c# websocket web-worker

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

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

我一直在调查使用websockets,这会比ajax更快吗?

我计划在Web worker中对此数组进行反序列化,并将其放入indexeddb。

我还希望在一段时间(几分钟)内将大约40个此类数组放入indexeddb。

1 个答案:

答案 0 :(得分:0)

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

您可以使用jsstore执行indexeddb查询(它在Web worker中执行查询)。如果您使用普通的indexeddb,那么它也很好。因此,如果您使用jquery for ajax和jsstore for 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在一段时间后调用上述代码。