創建DOM目前我沒有在我的網站任何Ajax請求,這裏是一個簡化了的我的代碼:由PHP VS JS
class all_posts {
public function index($id){
$statement = $db->prepare("SELECT * FROM mytable WHERE id = :id");
$statement->execute(array(':id' => $id));
$results = $statement->fetchAll(PDO::FETCH_ASSOC);
$arr = [];
$arr['html'] = '<ul>';
// creating HTML
foreach($results as $result) {
$arr['html'] .= "<li class='clsname'>".$result['title']."</li>
<li style='color:gray;'>".$result['content']."</li>";
}
$arr['html'] .= '</ul>';
return $arr;
}
}
好無一不精。現在有時我想通過ajax請求獲得結果。那麼我的問題是什麼?
我想知道,我是否應該沿着HTML返回結果,還是應該返回純查詢結果,然後通過JS創建HTML?換句話說哪一個有更好的表現?
#1:
.
.
$arr['html'] .= '</ul>';
if(!empty($_SERVER["HTTP_X_REQUESTED_WITH"]) &&
strtolower($_SERVER["HTTP_X_REQUESTED_WITH"]) === "xmlhttprequest") {
header('Content-Type: application/json');
echo json_encode($arr);
exit();
}
return $arr;
.
.
#2:
.
.
$results = $statement->fetchAll(PDO::FETCH_ASSOC);
if(!empty($_SERVER["HTTP_X_REQUESTED_WITH"]) &&
strtolower($_SERVER["HTTP_X_REQUESTED_WITH"]) === "xmlhttprequest") {
header('Content-Type: application/json');
echo json_encode($results);
exit();
}
.
.
我個人喜歡去#1,因爲在這種情況下,我做了HTML曾經和我可以稍後改變它。但是我擔心表演會不會很慢?
將dom創建移動到客戶端時,應該節省帶寬和處理時間。我只是簡單地發送html。 – Thomas
所以你的選擇是**#1 **? –