2010-01-29 107 views
0

所以當我構建我的項目時,我想我一定在做錯了什麼。有些模板代碼是可重複使用的,這使我想從模板中提取代碼,但是我找不到一個好的方法。例如,整個網站中的一些按鈕是相同的設計。從頁面中提取出來的最佳方式是什麼?這是我考慮使用簡單,包含標籤或包含文件的地方。django可重複使用的模板代碼

現在這很好,除了我也非常關心優化速度。經過測試,我發現使用簡單標籤比僅僅正常的內聯模板慢50%,並且包含標籤的速度慢了350%以上。這是一個值得關注的問題,因爲重複的代碼段位於列表中。因此,例如,當顯示項目列表時,我有一段代碼用於向上/向下投票,該代碼在整個網站中進行復制。如果我使用像包含標籤這樣的東西,那會爲網站增加很多繁重工作。有沒有更好的方法來做到這一切?

如果我正在爲速度而建設,我是否應該基本上妥協DRY以使事情更快?

回答

1

使用任何你不斷重複的事情。我是按鈕之類的東西的包含標籤的粉絲。

如果您正在爲速度建設,請使用Django's cache framework,以避免一遍又一遍地執行相同的工作,特別是要查看template fragment caching

+0

沒錯。這是過早的選擇。模板系統不太可能成爲瓶頸;更重要的是,你還不知道它是否是。所以你會建立較少維護的模板,以優化你甚至不知道需要優化的東西。另外,Django 1.2增加了對加載模板的緩存,這可能會使這種性能大部分消失。 – 2010-01-29 17:05:24

+0

謝謝你們,我認爲你是對的。卡爾,我認爲你的評論非常有說服力。我認爲我一直在困擾錯誤的事情。感謝您的高舉:) – killerbarney 2010-01-30 01:11:36