我正在使用CodeIgniter框架开发一个站点,并希望集成一些AJAX调用(使用jQuery)。
该网站是关于赛马小费(类似于小脚小费,用户可以通过点击按钮提交小费)。我喜欢避免用户在提交小费时重新加载页面的需要(没有AJAX,他们将不得不一遍又一遍地重新加载页面)。
基本上我的想法是:(如果你有意,请随时纠正我或给我更好的建议)
我的问题是:使用javascript获取JSON数据并将其填充到浏览器中是否更好?或者更好的是请求服务器端(在本例中为CodeIgniter)生成特定的HTML,然后使用AJAX获取它并使用javascript / jQuery填充它(即:$("div#r1").html(fetched_data)
)?
我知道JSON数据将是轻量级的,但我必须使用JavaScript填充数据,这可能更容易或更难,具体取决于要求。
您对此问题有何看法?
答案 0 :(得分:0)
和json一起去,json更好。
在php中发送html不是一个好选择。使用json_encode()
从php返回您的数据。
编辑:
例如,你有一个像这样的数组;
<?php
$data = array(
'races'=>array('race1'=>array('race','details','here'),'race2'),
'horses' => array('horse1','horse2')
);
?>
因此,您必须为每个不同的数据设置html代码。但是如果你用json发送这些数据,你可以从你的视图中解析它或包含javascript并将数组中的每个项目设置为一个对象,并直接在任何你想要的地方使用。
json的例子;
//Ajax proccess here
success:function(response){
if(response.races){
$.each(response.races, function(i,item)){
var $race = $('<div></div>');
$race.addClass('race');
$race.html('<h3>'+item.racename+'<h3>');
$race.appendTo('#races');
}
}
}
如您所见,您可以完全控制json对象。访问元素和创建新元素总是更容易处理。如果你还没有使用json对象;您将始终使用返回的html刷新所有数据。这就像是因为忘记了“,”而从零开始写所有页面。
技术: Php是服务器端,javascript是客户端。所以你不能在你的服务器上做所有事情,这不是一个聪明的举动。
技术示例:
<?php
$data = getDataFromDB();
if(count($data) > 0) //Proccess: 1
{
$html = ''; //Proccess 2
foreach($data as $race) //Process 3
{
$html .= '<div class="race"><h3>'.$race->name.'</h3></div>';
}
if($html != '') //Proccess 4
{
echo $html;
}
}
?>
但是如果你只使用json_encode,它只会是一个进程......
这就是为什么最好使用带有ajax的json对象。