【发布时间】:2015-10-01 18:09:32
【问题描述】:
我只是对标题感到好奇,因为我一直在使用 PHP 来加载带有 HTML 的搜索结果,现在我已经开始为此目的使用 javascript。
以前我在我的网站上执行以下操作以在页面上加载搜索结果
<?php
//example code
echo ' <div class = "container">
<div class = "box"> <p> Searh result e.g foo bar </p> </div>
</div>'
?>
现在,当我调用一个 ajax 函数将搜索文本发布到 PHP 页面时,上面的方法将起作用,页面将返回所有匹配的结果以及 HTML,jQuery 会将结果推送到我的页面上
我现在正在做的是通过 ajax 将搜索文本发布到 PHP 页面,但这次不是返回包含在 HTML 标记中的所有搜索结果,而是返回一个 JSON 类型的数组,其中只有数据
现在,当我从 PHP 接收到这个数据数组时,我将它发送到一个自定义(自制)javascript 函数,该函数遍历数组并生成如下 HTML(例如)
for (myData in data)
{
results+='<li>'+
'<div class="row">'+
'<div class="col-xs-12 col-sm-9 no-margin">'+
'<a href="">'+data[myData].name+'</a>'+
'<div class="price">'+
'<div class="">'+data[myData].price+'</div>'+
'</div>'+
'</div>'+
'</li>';
}
最后,变量results 包含了所有的 HTML 以及随后通过 jQuery append 推送到页面的数据。
所以在第一种方法中,所有工作都在服务器端完成,它返回大量数据,因为 HTML 标记将乘以返回的结果数
而在第二种方法中,服务器只会返回一个 JSON 类型的数据数组 其余的工作将在客户端完成。所以问题是,第二种方法是否比第一种方法更好?
提前致谢
【问题讨论】:
-
除了流量我想说可维护性可能是一个问题 - 但这取决于您关注的技术。
-
第二个更好,因为您不必从服务器向客户端传递太多数据,只需发送
json并在另一端做一些技巧
标签: javascript php jquery html performance