ユーザーのマシンでローカル プロセスを呼び出し、stdout をブラウザーに戻すカスタム ブラウザー プラグイン (FireBreath で構築) があります。これを行うには、popen() 呼び出しを介してプロセスを実行し、パイプ JSAPI イベントを発生させ、ブラウザに送り返します。
ブラウザーで、出力をフォーマット済みのテキストとして div に追加し、div に一番下までスクロールするように指示します。
ブラウザ プラグインのコード:
FILE* in;
if(!(in = _popen(command_string, "r")))
{
return NULL;
}
while(fgets(buff, sizeof(buff), in)!=NULL)
{
send_output_to_browser(buff);
}
HTML & Javascript/jQuery:
<pre id="sync_status_window" style="overflow:scroll">
<span id="sync_output"></span>
</pre>
var onPluginTextReceived = function (text)
{
$('#sync_output').append(text);
var objDiv = document.getElementById('sync_status_window');
objDiv.scrollTop = objDiv.scrollHeight;
}
この方法は、私が必要とするブラウザでは機能しますが (これは内部ツールの使用が制限されています)、イライラするほどラグがあります。私のプロセスは通常、出力ウィンドウのスクロールが完了する 30 ~ 60 秒前に終了します。では、これをより効率的にするにはどうすればよいでしょうか。このテキストをブラウザに戻すより良い方法はありますか?