Я запускаю PHP webapp, который позволяет пользователям просматривать списки элементов.Как предотвратить дублирование кода при реализации прогрессивного улучшения?
Голый костью сайт использует PHP, чтобы написать HTML, чтобы показать результаты поиска:
<body>
<?php
foreach($results as $item) {
echo "<div class='item'>".
"<img src='images/items/".$item['imageName'].".png' />".
"<span class='itemDescription'>".$item['text']."</span>".
"</div>";
}
?>
</body>
Однако, когда Javascript включен, я использую AJAX для отображения результатов:
function fireSearch(query) {
$.post("ajax/search.php", {q: query}, function(items) {
for (var i in items) {
$("body").append(
"<div class='item'>"+
"<img src='images/items/"+items[i]['imageName']+".png' />"+
"<span class='itemDescription'>"+items[i]['text']+"</span>"+
"</div>";
}
}
}
I может просто написать PHP-функцию get_item_html($item)
и сделать запрос AJAX возвратом чистого HTML-кода и просто поместить его в DOM, но если запрос возвращает много результатов, которые будут реальной тратой пропускной способности, когда мне действительно нужно построить HTML-код это номер imageName
и text
.
Является ли это чем-то, чем я должен справиться или есть какое-то изящное решение?
И имеет ли эта проблема имя, чтобы я мог это сделать?
Это называется templating. Некоторые форматы шаблонов могут использоваться как на сервере, так и на стороне клиента. – Bergi