2012-12-05 59 views
0

我有一個模板變得很長,所以我將一個部分分成了一個關聯的部分模板。「包含」在Flask Jinja導致模板加載較慢?

我長的模板現在有一個電話..

{% include "shorttemplate.html" %} 

。這適當地繼承了我所需要的所有長模板的所有內容,但似乎產生了短模板內容的加載閃爍 - 它們不在那裏,然後突然出現。在html呈現之前不應該發生包含?爲什麼我看到這個閃爍?

我使用include命令只是爲了組織清晰---我甚至沒有在其他地方重複使用這個簡短的子模板,我只是想將這個單元移出長模板。

有沒有辦法在呈現html之前詢問所有瓶子代碼以便我看不到這種閃爍?

回答

1

閃爍是有,因爲頁面需要更長的時間來加載,這並不取決於瓶代碼是否之前或渲染HTML(雖然它發生只是當你調用render_template)後執行。瀏覽器只顯示一箇中間狀態,當頁面加載速度足夠快時,您通常不會看到這種狀態。如果你有這樣的filckers一個問題,您可以

  • 通過優化你的代碼或更換您使用的成分是提高服務器軟件棧
  • 拋出更多的資源,以提高服務器硬件使用(更快的CPU,更大的內存,更快的存儲),或
  • 避免重新加載整個頁面,並使用AJAX來更新只需要它的部分提高你的客戶端代碼
+0

這很有道理。我想另一種解決方案是使用jinja2編譯模板緩存的東西。 – Mittenchops

+0

我同意,啓用編譯模板緩存符合第一類(改進服務器軟件堆棧),並且通常很容易設置,但它仍然可以提高可感知的性能。 – dnet