実現したいこと
大量のデータ(4000行、8列)をDBから取得しViewに渡したとき
- tableタグで1秒以内に表示できること。
- メニューを開いたりしたときのアニメーションが重くないこと
- ブラウザが固まらないこと
前提
業務で発生している問題ですので、環境や
gridレイアウトで表示したらは無しでお願いします。
言語等
- C# asp.net(.aspx)
- Javascript(JQuery)
- SQL Server
発生している問題
全てSSRで実施するとブラウザ実現したいことに記載した通り
ブラウザが固まり更新ボタンすら押せなくなってしまいます。
ですが、ページングは他で実装してないからという
謎理由で却下されているので、tableタグで実現する必要があり、
Jquery tablesorterも使っているのでその動きも
担保する必要があります。
(重さ具合:
250msで動くはずのアニメーションが3秒くらいかかります
約15フレーム(60fps換算)のはずなのに2フレームくらいです。
)
試したこと
OFFSET, FETCH NEXTを用いて初回アクセス時,重くならないくらい取得する
避けていた、InterSection Observerを用いて、一番下の要素が見つかったら
再フェッチすることで無限スクロールを実装初回が重く固まることは解消できた
下の方にスクロールして読み込み完了すると結局重くなる問題発生
すべての行にobserverを設定し非表示要素に
インラインスタイルでVisibility : hiddenを設定
(display noneだとスクロールがおかしくなるため)多少マシになったかな、まだ重いけど(現在、ここです)
※ 引用ではないですが多少見やすいかなでこの形にしています。
もし他にいい方法あれば教えていただきたいです。
また、本題とは関係ないですが、一度発火したobserverのコールバックが
何回も実行されてしまう謎も教えていただけるとありがたいです
