У меня есть html отчет в памяти, и я хочу показать его пользователю, не сохраняя отчет на диск. Сейчас мне не нужно беспокоиться об окнах, поэтому я делаю tmp-файлы с ruby и использую систему open
, чтобы показать файл.
report_file = Tempfile.new([report.name, report.extension])
report_file.write(report.text)
system "open #{report_file.path}"
Хотя это может показаться работающим, но это не так, поскольку временный файл очищается из памяти, прежде чем safari / chrome сможет действительно прочитать данные (система вернется, когда вернется команда open
, которая не учитывает количество время, необходимое для safari / chrome / и т. д. для фактического чтения данных.) Чтобы обойти это, я использовал sleep 60
после open
.
У меня такой вопрос: есть ли лучший способ отобразить html-файл пользователю без его сохранения, чем с помощью tmpfiles? Если нет, то есть ли способ ждать Safari / Chrome / и т.д. прочитать файл без использования sleep
вызова?