为什么要在PHP中生成HTML:
- Javascript应该定义行为,而不是内容。
- 用Javascript创建需要更多标记(多行字符串不像PHP中那样容易)。
- 如果您的HTML是在多个位置(PHP和JS)生成的,则很难维护。
- 您可以使用jQuery的DOM操作函数来创建HTML,但从长远来看,您会陷入困境。
- 在服务器上创建HTML的速度比在浏览器上创建HTML的速度要快(在计算意义上)。
- 使用PHP循环更容易-生成表标记很容易。
- 如果在页面加载时输出标记,则用户禁用了Javascript,则可以保留某种可操作性。
为什么要在jQuery中生成HTML:
- 您会节省一些带宽。
- 绑定事件可能更简单。
因此,我赞成第一种选择,即在PHP中生成HTML。
视觉比较这两种方法,创建一个简单的表。
选项1,使用PHP:
// PHP$html = '<table>'; foreach($data as $row) { $html .= '<tr>'; $html .= '<td><a href="#" >Click!</a></td>'; $html .= '<td>'.$row['id'].'</td>'; $html .= '<td>'.$row['name'].'</td>'; $html .= '</tr>';}$html .= '</table>'; echo $html;?>// jQuery$('#container').load('handler.php', function() { $('#container a.button').click(function() { // Do something });});选项2,使用jQuery:
// PHPecho json_enpre($data);// jQuery$.ajax({ url: 'handler.php', dataType: 'json', success: function(data) { var table = $('<table />'); var len = data.length; for(var i = 0; i < len; i++) { var row = $('<tr />'); var a = $('<a />').attr('href', '#').addClass('button'); row.append($('<td />').append(a)); row.append($('<td />').html(data[i].id); row.append($('<td />').html(data[i].name); table.append(row); } table.find('.button').click(function() { // Do something }); $('#container').html(table); }});从设计/易于编码/美观的角度来看,我肯定会说采用PHP方法。



