2013-03-19 44 views
1

我有一个小型应用程序,通过PHP后端从数据库加载HTML内容。目前,jQuery将PHP文件中的html数据加载到主页上的DIV中,每隔5秒发生一次setInterval() $('#div').html(html);。所有格式都在CSS中完成,数据结构从php文件中回显出来。我还使用jQuery通过PHP将数据发布到数据库,因为这是一个小型的聊天应用程序。我的问题是什么是更快或更有效的方式来拉这个数据,要么使用json和解析每个元素到它的结构通过jQuery .each()方法或继续使用我当前的.html()方法来加载数据并回显出完整的数据结构通过PHP?谢谢你的时间。jQuery .each()方法或.html()方法

+1

定义“更好”。拉动HTML的JSON intead需要(稍微)更多的工作在客户端,但(稍微)更快的网络下载。通常这被认为是可取的,但如果你没有报告任何问题,为什么要担心呢? – Blazemonger 2013-03-19 16:04:06

+0

“更好”是什么意思?对'html()'发出一个调用,而不是增量地构建DOM树将最可能*更快*。 – 2013-03-19 16:04:08

+0

这不是问一个具体的问题,所以我怀疑它会被关闭,但我想评论一下任何一种方法都是有效的,这只是一个哲学问题。如果您有PHP后端返回JSON数据,那么PHP后端将与前端完全分离,然后您可以将其用于UI类型(移动版本的网站,智能手机应用程序...)或其他视图相同的用户界面。 – 2013-03-19 16:06:34

回答

2

我个人在PHP中将结构回显为JSON对象。然后在JavaScript解析它,并通过.html()将其放置到它的容器中。

我认为这比替代方案好得多,因为您在PHP中拥有漂亮的可编辑代码,只需使用javascript将其放在需要的位置即可。

在我的PHP:

$response['error'] = false; // if you get an error set this to true 
    $response['html'] = ''; // set this wherever you like. 
    alternately if you needed to break it up 
    $response['html_A'] = ''; 
    $response['html_B'] = ''; 


>  in the end 


    echo json_encode($response); 

在JavaScript

$.post(function(r){ 
    response = JSON.parse(r); 
    if (response.error !== true){ 
    $('#someDiv').html(response.html); 
    } 
    else { 
    alert (response.errorMessage); 
    } 
} 

做一个$。每个循环似乎费力。特别是当你决定添加/ mod一些由php生成的输出时。

相关问题