У меня есть пользовательский плагин для браузера (построенный с 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:
<code><pre id="sync_status_window" style="overflow:scroll">
<span id="sync_output"></span>
var onPluginTextReceived = function (text)
{
$ ( '# Sync_output') добавляет (текст).
var objDiv = document.getElementById ('sync_status_window');
objDiv.scrollTop = objDiv.scrollHeight;
}
Этот метод работает для браузеров, в которых он мне нужен (это внутренний инструмент для ограниченного использования), но он крайне разочаровывает. Мой процесс обычно заканчивается за 30-60 секунд до того, как окно вывода заканчивает прокрутку. Итак, как мне сделать это более эффективным? Есть ли лучший способ передать этот текст обратно в браузер?