在通過AJAX加載內容的應用程序中(讓我們使用博客文章作爲示例),在將加載的內容加載到HTML模板之前,將其加載到DOM之前,最適合的方法是什麼?有關通過AJAX模板動態加載內容的最佳方法?
例如,我可以創建我的帖子的一個簡單的JSON飼料,像這樣:
[
{
"id": 1,
"title": "Title 1",
"time": "2nd August 2013",
"content": "Post content here."
},
...etc
]
而且模板我想用來代表一個帖子:
<li data-id="{{id}}">
<h3>{{title}}</h3>
<small>{{time}}</small>
{{content}}
</li>
夫婦方法我以前使用的是:
創建一個.php文件,其內容類型設置爲application/javascript和i將其作爲頁面上的腳本排除。使用PHP讀取目錄中的所有HTML文件並壓縮其內容。將內容作爲字符串存儲在名爲
HTML
的全局對象中,其中的鍵是HTML文件的名稱。然後可以通過HTML["post.html"]
訪問模板。加載帖子時,使用JavaScript將全局可訪問的HTML字符串中的令牌替換爲帖子內容。優點:所有模板HTML都可以在應用程序啓動時使用。
缺點:似乎混亂。如果有很多模板,那麼包含的JavaScript文件將會很大。我不喜歡HTML存儲在JavaScript中的想法。更新JSON供稿以包含
html
字段,存儲該帖子的完整HTML(帖子內容已注入模板)。優點:只會在需求時加載HTML,而不是像第1步中那樣在啓動時加載。JavaScript不需要進行處理以更新模板。
缺點:JSON變得更大。感覺奇怪的是除了JSON提要中使用的與純後相關的數據之外的其他東西。爲每個帖子重複使用相同的HTML,這是不必要的。
不知道是否有更明顯更好的方法來做到這一點。如果有的話,我想知道它。理想情況下,模板將作爲單獨的HTML文件存儲,並且只能按需加載。
你問你應該在哪裏存儲HTML模板,或者如何將{{content}}值發送到瀏覽器? – BigToach
@BigToach我想問什麼是最合乎邏輯的方法加載HTML模板和更新它們與異步加載的數據之前,將HTML添加到DOM顯示。 – Marty