Avatar billede nielsbrinch Nybegynder
16. april 2004 - 14:19 Der er 10 kommentarer og
1 løsning

Performance på Response.Write("hej")

Hvis jeg har noget kode i min aspx-fil og vil skrive noget html ud, kan jeg gøre det på to måder:

Den første:
-----------
<%
  if (betingelse)
  {
    ... mere kode her
%>
  <b>Her skriver jeg så lige noget html</b>
<%
  }
%>
----------

Den anden:
----------
<%
  if (betingelse)
  {
    ... mere kode her
    Response.Write("<b>Her skriver jeg så lige noget html</b>");
  }
%>

De to kodestumper giver det samme resultat. Så vidt jeg kan forstå, er eksempel nummer 2 den hurtigste måde at gøre det på

...

Men er den virkelig mærkbart hurtigere? Kan det betale sig at kode på den ene måde frem for den anden, bare for performance?

Giv mig jeres mening.
Avatar billede hmortensen Nybegynder
16. april 2004 - 14:23 #1
Ved større projekter kan det betyde noget.

I ex. 2 skal koden ikke fortolkes af serveren
Avatar billede thomas_yde Nybegynder
16. april 2004 - 14:24 #2
Lytter.
Men umiddelbart ville jeg tro det er pga compilern. At den så kan compile hele siden frem for at springe ud af compileren for at skrive html og så tilbage til at compile.
Men kun en tanke...
Avatar billede juggalo Nybegynder
16. april 2004 - 14:50 #3
Der er faktisk den første metode som er den hurtigste - selvom det umiddelbart kan virke ulogisk. Du kan finde beskrivelse og dokumentation af dette på Microsofts website (kan ikke lige URL'en)
Avatar billede juggalo Nybegynder
16. april 2004 - 14:52 #4
Avatar billede arne_v Ekspert
16. april 2004 - 21:40 #5
Nu er jeg totalt ASP.NET ignorant, men problem stillingerne er alment
kendte.

ASP.NET compiles - den fortolkes ikke. Derfor holder argumentet om at ex.2 ikke
skal fortolkes slet ikke.

Hvis compileren vil det kan den generere præcis den samme kode for de 2 former.

Linket er til ASP ikke ASP.NET, men muligvis kan det godt overføres
til ASP.NET - hvis det kun er en linie så tror jeg faktisk at der
genereres præcis den samme kode - men hvis det er flere linier så
giver ex.1 mulighed for at generere kode som skriver "linie1\r\nlinie2"
med et kald af Write i.s.f. to kald af Write.

I praksis betyder det næppe noget. De øvrige ting der skal ske er
simplethen så meget dyrere end et par enkelte metode kald.

Det afgørende er imidlertid hvad der er bedst stil.

Som hovedregel: jo mindre <% %> jo pænere.

Helt klar adskillelse af præsentation (tags) og kode (C#/VB.NET).

Server controls er ikke opfundet for sjovs skyld.
Avatar billede burningice Nybegynder
18. april 2004 - 11:15 #6
arne_v>> nemmerlig... :) kompilering fremfor fortolkning... det er der hele humlen ligger
Avatar billede nielsbrinch Nybegynder
18. april 2004 - 14:24 #7
Jeg kan bedst lide måde 1, fordi så kan min editor opfatte html'en som html.

Det du siger, lyder som om det er både rigtigt og fornuftigt, arne_v.

Er der nogen der _ved_ hvad compileren gør ved html-kode udenfor <%%>

Jeg ved godt det ikke gør nogen forskel i praksis, men jeg er ude efter den teoretiske forskel.
Avatar billede burningice Nybegynder
18. april 2004 - 15:05 #8
alt udenfor <% %> bliver smidt i en stor Literal-kontrol... du kan finde ud af det ved at undersøge kontrolstrukturen af din klasse der repræsenterer din side.
Avatar billede apocryphal Nybegynder
23. april 2004 - 12:44 #9
Jeg kan slet ikke se hvorfor man i ASP.NET skal ønske at gøre dette?
ServerControls, UserControls og alt det sjov, er lavet for at løse disse opgaver uden man skal spekulerer på det?

Så snart der ligger <%= %> i .aspx filerne, mener jeg man har spoleret hele konceptet med ASP.NET?

- eller er det mig der er tosset? :P
Avatar billede arne_v Ekspert
23. april 2004 - 12:52 #10
De fleste er enige med dig.

Men som bekendt er der jo nirvana og så virkeligheden ....
Avatar billede nielsbrinch Nybegynder
23. april 2004 - 19:35 #11
...og i virkeligheden er man nogle gange pisket til at bruge flad html
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester