Zur Zeit habe ich keinen Ajax-Request in meiner Website und hier ist ein vereinfachtes mein Code:Erstellen von DOM von 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;
}
}
Ok alles in Ordnung. Jetzt möchte ich manchmal das Ergebnis durch Ajax-Anfrage erhalten. Nun, Was ist meine Frage?
ich wissen will, soll ich das Ergebnis mit entlang der HTML zurückgeben oder soll ich das reine Abfrage-Ergebnis zurück und dann den HTML von JS machen? Mit anderen Worten, welcher hat eine bessere Leistung?
# 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();
}
.
.
Ich persönlich mag mit gehen # 1, weil in diesem Fall habe ich die HTML einmal machen, und ich Kann es später einfach ändern. Aber ich mache mir Sorgen wegen der Vorstellung, wird es nicht langsam sein?
Wenn Sie die dom-Erstellung auf den Client verschieben, sollten Sie sowohl Bandbreite als auch Verarbeitungszeit sparen. Ich würde einfach die HTML zur Vereinfachung senden. – Thomas
Sie wählen also die ** # 1 **? –