TracReportsのテーブルorグラフの非同期描画対応
ReportIncludePluginに機能追加。重いSQLがあると、マクロを貼付けているWikiページを開くとしばらく固まってしまうので、SQL発行->テーブルorグラフ描画を非同期でやってみた。
忘れそうなので実装メモを書いておく。
- マクロが返す内容は、Ajaxによる非同期通信を行うjavaScriptとする
- このjavaScriptでは、マクロに定義されたオプションを引数データとしてサーバにリクエストする
- サーバ側は、IRequestHandler#process_requestで処理する。後はこれまでの処理と同じで、渡されたオプションを元に、TracReportsのSQLを取得してデータを読み込み、tableタグに変換する。必要であれば、グラフ用のHTMLも生成する。生成したHTMLをクライアント側に返す。
- クライアント側では、Ajaxリクエストの結果のHTMLをそのまま表示する。