我通常將它們存儲在視圖;在這裏我要告訴你關於jquery-tmpl
的一個非常有趣的用例。
我在一個網站上使用jquery-tmpl
,由於請求數量巨大,我需要一種技術,我請求decontextualization
。這項技術只是爲了在繁忙時間保持活力而實施,它純粹遵循以下規則:
- 切勿觸摸服務器以多次重新生成頁面;除非它是絕對是必需的。
- 使用JavaScript提供的狀態爲誰是的用戶以及他擁有什麼特權。
考慮到這兩條規則,您可能注意到jquery-tmpl
所提供的邏輯基本數量對於給定的情況來說是非常宏偉的。我所做的基本上是將jquery-tmpl
模板包含在需要解除語境化的文檔中。所有的模板都是由頁面本身提供的;所以我可以做一個d18n
javascript庫可能做到以下幾點:
- 查詢有關當前用戶一個非常快的腳本,作爲JSON對象返回數據。
- 遍歷JSON並在指定的選擇器中包含文檔上提供的模板。讓
jquery-tmpl
做數學。
每當我們需要做的修改的「tempalte」我們會做同樣的方式,我們將做到這一點,如果沒有可用的jquery-tmpl
:在視圖/部分。
您可以查看「Can user edit post?」這樣的內容。模板:
<script id="post-edit-button" type="text/x-jquery-tmpl">
{{if user_id == "<%= post.user.id %>" || role == "staff" || $.inArray(user_id, EDITORS) }}
<a href="<%= edit_post_url(post) %>">Edit</a>
{{/if}}
</script>
希望我的經驗在某種程度上對您有用。
你提出的偉大點,我很驚訝它不是更多的說。我問菲爾哈克關於這個(http://haacked.com/archive/2010/11/09/asp-net-mvc-3-release-candidate.aspx)他的答案令人困惑 - 戴夫沃德也提到需要jquery tmpl視圖引擎 - http://encosia.com/2010/12/02/jquery-templates-composite-rendering-and-remote-loading/。 – redsquare 2010-12-19 23:54:55
我剛纔看到https://github.com/awhatley/jquery-tmpl.net和https://github.com/xyu/jquery-tmpl-php - 都嘗試將jQuery tmpl引擎移植到.NET/PHP。 – 2010-12-20 00:07:24
增加了一個有趣的用例,可能對你有用。好幾個月前我們必須解決的問題。 – MarioRicalde 2011-05-20 13:06:43