var html = "<div><img src='#{src}' /> #{name}</div>".interpolate(json);
$('container').insert(html); // inserts at bottom
Approach #2:
var div = new Element('div');
div.insert( new Element('img', { src: json.src }) );
div.insert(" " + json.name);
$('container').insert(div); // inserts at bottom
Here's an example, using my 翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳 plug-in for jQuery:
var tmpl = '<div class="#{classname}">#{content}</div>';
var vals = {
classname : 'my-class',
content : 'This is my content.'
};
var html = $.tmpl(tmpl, vals);
1) 这是一个选项。在客户端使用 JavaScript 构建 html,然后将其作为一个整体注入到 DOM 中。
请注意,这种方法背后有一个范例: 服务器只输出数据,(在交互的情况下)通过 AJAX 请求异步地从客户端接收数据。客户端代码作为独立的 JavaScript Web 应用程序运行。
Web 应用程序可以运行,渲染界面,即使没有服务器启动(当然它不会显示任何数据或提供任何类型的交互)。
这种模式最近经常被采用,整个框架都是围绕这种方法构建的(参见 backbone.js)。
2) 出于性能原因,如果可能的话,最好在字符串中构建 html,然后将其作为一个整体注入到页面中。
3) 这是另一个选项,同时采用了 Web 应用程序框架。其他用户已经发布了各种可用的模板引擎。我的印象是,你有能力评估他们,并决定是否遵循这条道路。
4) Another option. But serve it up as a plain text/html; why JSON? I don't like this approach because mixes PHP (your server language) with Html. But I adopt it often as a reasonable compromise between option 1 and 4.
我的回答是: 你已经在朝正确的方向看了。
I suggest to adopt an approach between 1 and 4 like I do. Otherwise adopt a web framework or templating engine.