我試圖使用CSS和Jinja和Flask的媒體查詢來確定設備類型並根據設備提供適當大小的圖像。來自手機的請求將獲得比桌面,平板電腦等更小的圖像。使用CSS媒體查詢和Flask/Jinja進行設備檢測
問題是{{ post|get_image(post, 480) }}
的評估獨立於媒體查詢,因此會觸發每個實例的get_image
自定義模板過濾器。 get_image
也是爲設備呈現正確圖像的地方,因此可能不必要的多次呼叫可能會對性能產生負面影響。
理想情況下,只有一個媒體查詢是通過一次調用get_image
制定的,但挑戰在於媒體查詢和Jinja完全相互獨立,因爲一個人對另一個不瞭解。
我真的很感激替代方法或建議,以改善我的方法。提前致謝!
這裏的媒體查詢的一個例子:
@media only screen and (max-device-width: 480px) {
.post {
background: url("{{ post|get_image(post, 480) }}") no-repeat center center fixed;
}
}
@media only screen and (max-device-width: 1224px) {
.post {
background: url("{{ post|get_image(post, 1224) }}") no-repeat center center fixed;
}
}
您正在尋求「改善」的方法,但就我而言,您正在做的事情沒有問題。你真的關心什麼?你認爲模板渲染速度太慢,多次調用'get_image'? –
是的,可能會有4-5次調用get_image(每個媒體查詢一次),這實際上是生成適當的圖像。 – Raj
有什麼辦法可以讓'get_image' _不生成圖像? –