Response.Write vs <% =%> - PullRequest
       30

Response.Write vs <% =%>

25 голосов
/ 30 сентября 2008

Имея в виду, это для классического жереха

Что лучше, весь HTML-код, содержащийся в Response.Write Statements или вставке переменных в HTML через <% =%>.
Например,

Response.Write "<table>" & vbCrlf
Response.Write "<tr>" &vbCrLf
Response.Write "<td class=""someClass"">" & someVariable & "</td>" & vbCrLf
Response.Write "</tr>" & vbCrLf
Response.Write "</table>" & vbCrLf

VS

<table>
  <tr>
     <td class="someClass"><%= someVariable %></td>
  </tr>
</table>

Я в основном спрашиваю с точки зрения производительности, в какой мере сервер будет иметь наименьшее влияние при добавлении нескольких переменных?

Если нет технических отличий, каковы аргументы одного над другим?

Ответы [ 15 ]

1 голос
/ 01 октября 2008

Я согласен с Джейсоном , тем более что теперь .NET предлагает MVC-фреймворк в качестве альтернативы этой ужасной веб-форме / Postback / ViewState .NET, начатой ​​с.

Может быть, это потому, что я был классическим ASP / HTML / JavaScript старой школы, а не программистом настольных приложений VB, из-за чего я просто не сказал "Путь веб-формы"? но я так рад, что мы, кажется, идем полным кругом и возвращаемся к методологии, такой как Джейсон относится к.

Имея это в виду, я бы всегда выбирал включенную страницу, содержащую вашу модель / логику и токены <% =%> в вашем эффективном шаблонном HTML-представлении. Ваш HTML будет более «читабельным», а ваша логика разделена настолько, насколько позволяет классический ASP; ты убиваешь пару птиц этим камнем.

1 голос
/ 30 сентября 2008

<% = Bazify ()%> полезно, когда вы генерируете HTML из короткого выражения , встроенного в некоторый HTML .

Response.Write "foo" лучше, когда вам нужно сделать несколько встроенных HTML-кодов с большим количеством кода .

Технически, они одинаковы.

Говоря о вашем примере, тем не менее, код Response.Write выполняет много конкатенации строк с &, что очень медленно в VBScript . Также, как Рассел Майерс сказал , он не вкладывается так же, как ваш другой код, который может быть непреднамеренным.

1 голос
/ 30 сентября 2008

Вы должны сформулировать эти вопросы с точки зрения повторного использования кода и удобства сопровождения кода (или читабельности). В любом случае, выигрыша в производительности нет.

1 голос
/ 30 сентября 2008

Нет никакого улучшения производительности, переключающегося на Response.Write, и это может быть быстрее читать и поддерживать, используя сокращенную запись.

1 голос
/ 30 сентября 2008

<%= %>, а остальные расширились до Response.Write(), так что в итоге все тоже самое

...