Helo, так что у меня есть веб-сервер, который генерирует объект PHP, и я строю веб-страницу в зависимости от этого объекта (у меня есть конструктор HTML, который буквально echo
команды), и он отлично работает, когда я использую ООПпоэтому я легко поддерживаю свой код.
Я понимаю, что с точки зрения нагрузки это выбор между нагрузкой на стороне сервера и на стороне клиента, и сейчас это не проблема.Пожалуйста, исправьте меня, если я ошибаюсь, и дайте мне знать, что вы думаете об этом, если у вас есть какие-либо.
У меня также есть код JS для работы со страницей HTML, построенной на PHP, и я могу распознать два типастраниц, одна из них немного смущает меня:
Пассивная веб-страница
Может отображать только данные и не отправляет отзыв на сервер.Эти веб-страницы могут быть сделаны с помощью PHP или Javascript, я не вижу никакой разницы.
Активная веб-страница
Этот тип предназначен для страниц, которые отправляют и получают (AJAX и другие) запросы от сервера.Теперь у меня есть два варианта, которые я не могу выбрать:
Создайте объект PHP и передайте его JS для построения HTML.
В этом случае JS должен знать о полнойобъект, и он может легко манипулировать им и делать обратную связь.Но это позволило бы и JS, и PHP понять объект, что означает удвоение работы над этим полем.
В этом случае обмен обновлениями должен быть безупречным.
Полная сборка HTML с использованием PHP
Этот параметр требует, чтобы JS знал о нескольких, а не обо всех частях объекта (частях, которые необходимо обновить).Это требует меньше работы над JS, так как откладывает возможную работу на будущее (т. Е. Каждую новую часть объекта, которая нуждается в обновлении, следует понимать как JS).
Теперь я уверен, что втораявариант лучше, но первый вариант на данный момент быстрее (так как я хотел бы скоро иметь работающий DEMO).В то же время я не совсем уверен и не хочу слишком углубляться, чтобы потом стало труднее изменить свое мнение.Что вы думаете?
Если это было недостаточно ясно, я объясню на примере.
PHP
Class A {
protected $_name;
protected $_id;
function Update( $aInstance ) {
// Give it an object, and it updates it. In case JS exchanges the whole object
}
function UpdateName( $newName ) {
// Updates the name only. Used in case JS updates parts of the object.
}
// Other setters, too.
function Draw() {
// Either returns the object as JSON or echos the HTML code.
}
}
class B inherits {
protected $_age;
function Update( $bInstance ) {
paret::Update( $bInstance );
// Update yourself, too.
}
// Other setters, too
function Draw() {
// Special draw, call parent's, or add to it
}
}
JS 1-й вариант
var object;
function Draw( object ) {
// Handle all parts of the object.
}
function UpdateName() {
// Whatever happens when the name changes.
}
JS 2-й вариант
var header;
function DrawHeader() {
// Display the header somehow
}
var DrawName() {
// Display the name somehow
}
function UpdateName() {
// Whatever happens when the name changes.
}