LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

И если этот ответ ожидается в формате HTML, то придется сформировать корректный HTML, т.е. — обрабатывать это HTML

В том то и дело, что нет. Бекэнду плевать, что там, он должен только подставить данные в заранее приготовленный блоб. Он даже не знает html там или нет. Какой-то поток символов, видит в нём %uid% - заменяет на id юзера, видит в нём %msg_content% - заменяет на сообщение этого юзера. Например, может быть что-то такое:

<div class="avatar"><img src="/avatars/%uid%.jpg" width=100 height=100></div>
<div class="msg_content">
%msg_content%<br>
<a href="/users/%uid%">%username%</a> %msg_date%<br>
<a href="/reply/%msg_id">reply to</a>
<a href="#msg%msg_id%">link</a>
</div>
Браузер это видит так: создать div такого-то класса, в нём картинку с таким урлом, затём её один div, в нём такой-то текст, ссылки итд. Как это должен видеть бекэнд: потом байт, в нём найдены %uid%, %msg_content%, %username%, %msg_date%, %msg_id% - их надо заменить на соответствующие данные, всё остальное передать без изменений. То, что там какие-то div-ы, картинки, ссылки - бекэнду знать совсем не требуется, вся его роль только переправить это браузеру.

Если бекэнд, вместо того чтобы отдать блоб с текстовыми подстановками, будет каждый раз его генерировать их отдельных dom-нод вручную - ничего, кроме дополнительного жора проца, он от этого не получит. Если что, шаблонизация через имена переменных со знаками % тут для примера, есть и другие шаблонизаторы. Но общее у них одно: весь html, который известен заранее - уже заранее вписан в блоб, собирать его из нод не надо, тупые строковые операции проще.

Исправление firkax, :

И если этот ответ ожидается в формате HTML, то придется сформировать корректный HTML, т.е. — обрабатывать это HTML

В том то и дело, что нет. Бекэнду плевать, что там, он должен только подставить данные в заранее приготовленный блоб. Он даже не знает html там или нет. Какой-то поток символов, видит в нём %uid% - заменяет на id юзера, видит в нём %msg_content% - заменяет на сообщение этого юзера. Например, может быть что-то такое:

<div class="avatar"><img src="/avatars/%uid%.jpg" width=100 height=100></div>
<div class="msg_content">
%msg_content%<br>
<a href="/users/%uid%">%username%</a> %msg_date%<br>
<a href="/reply/%msg_id">reply to</a>
<a href="#msg%msg_id%">link</a>
</div>
Браузер это видит так: создать div такого-то класса, в нём картинку с таким урлом, затём её один div, в нём такой-то текст, ссылки итд. Как это должен видеть бекэнд: потом байт, в нём найдены %uid%, %msg_content%, %username%, %msg_date%, %msg_id% - их надо заменить на соответствующие данные, всё остальное передать без изменений. То, что там какие-то div-ы, картинки, ссылки - бекэнду знать совсем не требуется, вся его роль только переправить это браузеру.

Если бекэнд, вместо того чтобы отдать блоб с текстовыми подстановками, будет каждый раз его генерировать их отдельных dom-нод вручную - ничего, кроме дополнительного жора проца, он от этого не получит.

Исправление firkax, :

И если этот ответ ожидается в формате HTML, то придется сформировать корректный HTML, т.е. — обрабатывать это HTML

В том то и дело, что нет. Бекэнду плевать, что там, он должен только подставить данные в заранее приготовленный блоб. Он даже не знает html там или нет. Какой-то поток символов, видит в нём %uid% - заменяет на id юзера, видит в нём %msg_content% - заменяет на сообщение этого юзера. Например, может быть что-то такое:

<div class="avatar"><img src="/avatars/%uid%.jpg" width=100 height=100></div>
<div class="msg_content">
%msg_content%<br>
<a href="/users/%uid%">%username%</a> %msg_date%<br>
<a href="/reply/%msg_id">reply to</a>
<a href="#msg%msg_id%">link</a>
</div>
Браузер это видит так: создать div такого-то класса, в нём картинку с таким урлом, затём её один div, в нём такой-то текст, ссылки итд. Как это должен видеть бекэнд: потом байт, в нём найдены %uid%, %msg_content%, %username%, %msg_date%, %msg_id% - их надо заменить на соответствующие данные, всё остальное передать без изменений. То, что там какие-то div-ы, картинки, ссылки - бекэнду знать совсем не требуется, вся его роль только переправить это браузеру.

Если бекэнд, вместо того чтобы отдать блоб текстовыми подстановками, будет каждый раз его генерировать их отдельных dom-нод вручную - ничего, кроме дополнительного жора проца, он от этого не получит.

Исходная версия firkax, :

И если этот ответ ожидается в формате HTML, то придется сформировать корректный HTML, т.е. — обрабатывать это HTML

В том то и дело, что нет. Бекэнду плевать, что там, он должен только подставить данные в заранее приготовленный блоб. Он даже не знает html там или нет. Какой-то поток символов, видит в нём %uid% - заменяет на id юзера, видит в нём %msg_content% - заменяет на сообщение этого юзера. Например, может быть что-то такое:

<div class="avatar"><img src="/avatars/%uid%.jpg" width=100 height=100></div>
<div class="msg_content">
%msg_content%<br>
<a href="/users/%uid%">%username%</a> %msg_date%<br>
<a href="/reply/%msg_id">reply to</a>
<a href="#msg%msg_id%">link</a>
</div>
Браузер это видит так: создать div такого-то класса, в нём картинку с таким урлом, затём её один div, в нём такой-то текст, ссылки итд. Как это должен видеть бекэнд: потом байт, в нём найдены %uid%, %msg_content%, %username%, %msg_date%, %msg_id% - их надо заменить на соответствующие данные, всё остальное передать без изменений. То, что там какие-то div-ы, картинки, ссылки - бекэнду знать совсем не требуется, вся его роль только переправить это браузеру.