我现在有这样的代码:
<li onclick = "
function CBAppData( callerObj, data )
{
var string = '';
for( a in data )
{
debug.push( data[a] );
if( data[a].__attributes.config.name )
{
string += '<li>' + data[a].__attributes.config.name + '</li>';
}
else
{
alert( 'Error with json index ' + a );
}
}
$( callerObj ).children( '.returnData' ).html( string );
}
DoAjax(
this,
'get_for_url',
'<?php echo Site::$url; ?>Process.php',
{
'space_id': '<?php echo $space->__attributes[ "space_id" ]; ?>'
},
CBAppData
)
">
<?php echo $space->__attributes[ "name" ]; ?>
<ul class = "returnData"></ul>
</li>
DoAjax就是这样:
function DoAjax( callerObj, _request, _url, _additionalData, callback )
{
$.ajax({
type: "POST",
url: _url,
data: {
request: _request,
additionalData: _additionalData
},
success: function( data )
{
callback( callerObj, jQuery.parseJSON( data ) );
},
error: function( a, b, c )
{
alert( "error: " + a + ", " + b + ", " + c + "." );
}
});
}
如果我有一个AJAX所谓的用PHP编写的页面,只为我生成了 LI 部分,我可以节省很多关于我需要处理的数量的小问题。 string + =''bit。
事情是......哪个更好?
使用客户端compy渲染html,还是使用服务器渲染html?
我不关心我使用哪种,只要我知道它至少是最佳或最佳实践方式。
此查询来自于需要使此应用程序超级未来的证明。
答案 0 :(得分:1)
历史上,服务器端处理速度更快。话虽如此,对于您的应用程序来说,这是非常小的东西,并没有太大的区别。问问自己哪种方法更容易维护,并且有你的答案。
答案 1 :(得分:0)
此处不确定“服务器端是否更快”的论点。这通常是正确的,但在这种情况下差异是......
客户端呈现: 通过ajax获取JSON 在javascript中构建html字符串 将HTML字符串注入doc正文,导致渲染(=处理的大部分)
服务器端预渲染(即服务器传递到HTML): 通过ajax获取HTML(因此流量更多) 将HTML字符串注入doc正文,导致渲染(=处理的大部分)
您优化的唯一部分是在jacvascript中构建HTML字符串,与大量工作相比,处理时间是微不足道的:HTML注入和后续渲染。
我喜欢这种客户端呈现方法,特别是如果将来可能会更改服务器平台的话。
银行用ackup服务做这样的事情:有时候他们有平台上运行的服务,两个或多个故障转移实例,有时一个其他服务做相同的事情,但写在一个完全不同的平台上。重量级的东西,通常不需要日常的网络应用程序,但它强调从数据处理中分割渲染处理的价值。