10

ブラウザにグリッドがあります。

データの行をJSON経由でグリッドに送信したいのですが、ブラウザーはJSONを受信するときに継続的に解析し、解析時に行をグリッドに追加する必要があります。言い換えると、JSONオブジェクト全体を受け取った後、行を一度にグリッドに追加するのではなく、受け取ったときに行を追加する必要があります。

これは可能ですか?特にjQuery、Jackson、Spring 3 MVCを使用していますか?

このアイデアには名前がありますか?私はこのアイデアのほんの一部がオンラインでまばらに文書化されているのを見ているだけです。

4

5 に答える 5

6

このユースケースのために正確に構築されたOboe.jsを使用できます。

Oboe.jsは、ストリーミングを使用してJSONをロードするためのオープンソースのJavascriptライブラリであり、DOMの利便性とSAXの速度と流動性を組み合わせています。

JSONをストリームとして解析でき、マイクロライブラリとして十分に小さく、依存関係がなく、他のどのライブラリと通信する必要があるかを気にしません。

于 2017-02-13T12:24:12.837 に答える
2

Lazy.jsは、「ストリーミング」JSON(デモ)を解析できます。

于 2014-11-25T16:53:17.107 に答える
1

ブラウザのを使用して、不完全または無効なJSONを解析することはできませんJSON.parse。テキストをストリーミングしている場合、ある時点で常に無効なJSONを解析しようとするため、失敗します。そこにはストリーミングJSONパーサーが存在し、ニーズに合ったものを見つけることができるかもしれません。

あなたの場合の最も簡単な方法は、各行に完全なJSONドキュメントを送信することです。

于 2012-06-07T14:34:30.433 に答える
0

SignalRをチェックしてください。

http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx

于 2012-06-07T14:33:59.933 に答える
0

2017年3月の更新:

Websocketを使用すると、データをテーブルにストリーミングするために使用できるサーバーへのオープン接続を維持できます。個々の行をJSONオブジェクトとしてエンコードして送信し、受信するたびにテーブルに追加できます。これはおそらくそれを行うための最適な方法ですが、テクノロジースタックで完全にはサポートされていない可能性のあるWebSocketを使用する必要があります。WebSocketがオプションでない場合は、サーバーが許可する最小のチャンクでデータをリクエストしてみることができますが、すべてのリクエストにオーバーヘッドがあり、データを取得するために複数のリクエストを実行することになるため、これにはコストがかかります。

AFAIKには、終了する前にhttpリクエストの解析を開始する方法はなく、JSON文字列を部分的に解析する方法もありません。また、データの取得は処理よりも桁違いに遅いため、実際に行う価値はありません。

大量のデータを解析する必要がある場合、最善の策はストリーミングアプローチを実行することです。

于 2012-06-07T14:42:30.740 に答える