Я создал страницу WSGI, которая содержит как табулированные данные, так и график рассеяния тех же данных из базы данных. (Я использую колбу и matplotlib, но это не имеет значения). Это генерирует два отдельных запроса: один для HTML-страницы и один для динамически генерируемого изображения, вызываемого из тега. Поскольку база данных довольно медленная и поскольку оба запроса нуждаются в одинаковых данных, я бы хотел, чтобы эта работа работала только с одним запросом SQL. На ум приходят два подхода:
После запроса БД в функции просмотра HTML, сгенерируйте диаграмму рассеяния и сохраните ее где-нибудь в файле PNG. Затем передайте табулированные данные в шаблон и подайте кешированный PNG, как только браузер запросит изображение.
Каким-то образом вставьте данные изображения в сам HTML, и браузер отобразит их, используя Javascript.
Подход 1. прост и понятен, но мне также нужен способ избавиться от кэшированных изображений, когда они больше не нужны. Это может стать грязным. Поскольку приложение работает только с http-запросами, мне придется сканировать каталог кеша при каждом запросе и решать, какой файл достаточно старый, чтобы его можно было удалить. В качестве альтернативы я мог бы сделать так, чтобы функция javascript «onload» вызывала мое приложение в третий раз, чтобы вызвать удаление изображения. Может быть, умный, но надежный?
- Я понятия не имею, как это сделать, не говоря уже о совместимости с браузером.
Есть предложения?