webForumDet fria alternativet

Snygg kod med response

ASP

10 svar · 611 visningar · startad av Boorg

Medlem sedan okt. 2004409 inlägg
Frågan#1

Hej.

tänkte lite på hur det serut när man skriver en response.write.

då hammnar jhu allt på en o samma rad, och ifall man loopar ut massa kod och kör response.write så blir det juh skitfult med allt på samma rad.

Är det enda sättet o få en snygg kod att man inte andvänder response.write och istället kör allt utanför klamrarna %>
<td>
blaha
</td><%

?

Mvh Jesper Borg

Medlem sedan juni 20034 013 inlägg
#2

Nej, du kan lägga in radbrytningar där du vill ha dem. Tecken 13 och 10. Har för mig man kunde skriva det som vbCrLf i VB-skript.

Medlem sedan juli 20015 107 inlägg
#3
<%
response.write "<tr>" & vbcrlf
response.write "<td>" & vbcrlf
response.write "</td>" & vbcrlf
response.write "</tr>" & vbcrlf
%>

Eller

<%
response.write "<tr>" & vbcrlf & "<td>" & vbcrlf & "</td>" & vbcrlf & "</tr>"
%>

Båda fungerar, det är väl en smaksak, och hur lätt man vill kunna skumma igenom sin ASP kod osv. Förmodar att variant ett är något långsammare, dock är det ingen märkbar skillnad, men om man kör det i en "bromsbänk" är nog alternativ två effektivare. Min gissning dock, kan inte garantera!

Medlem sedan okt. 2004409 inlägg
#4

tydal skrev:

Nej, du kan lägga in radbrytningar där du vill ha dem. Tecken 13 och 10. Har för mig man kunde skriva det som vbCrLf i VB-skript.

Det e klart man göra det! Tackar så mycket

Mvh Jesper Borg :bire

Medlem sedan maj 200010 687 inlägg
#5

M.Cheraghi skrev:

Båda fungerar, det är väl en smaksak, och hur lätt man vill kunna skumma igenom sin ASP kod osv. Förmodar att variant ett är något långsammare, dock är det ingen märkbar skillnad, men om man kör det i en "bromsbänk" är nog alternativ två effektivare. Min gissning dock, kan inte garantera!

Tvärtom, alternativ ett är bra mycket snabbare. I alternativ två måste den konkatenera vilket VB/VBScript inte gillar.

Även att bygga saker i Array:er och joina är effektivt.
Därför det finns hemmasnickrade StringBuilders som bygger på detta.

Dim vData(3)
vData(0) = "<tr>"
vData(1) = "<td>"
vData(2) = "</td>"
vData(3) = "</tr>"
Response.Write Join(vData, vbCrLf)

Men vill man ha kod som är lättläst och lätt att underhålla så är context-switchar att föredra.

Medlem sedan juli 20015 107 inlägg
#6

Erik Juhlin skrev:

Tvärtom, alternativ ett är bra mycket snabbare. I alternativ två måste den konkatenera vilket VB/VBScript inte gillar.

Där ser man! :)
Lär sig något nytt varje dag! :)

Medlem sedan apr. 20031 660 inlägg
#7

HEJ!

Man blir ju rätt trött efter ett tag att skriva VbCrLf eller VbTab. ;)

Därför inkluderar jag följande snutt i general.asp (motsv) och kan därför använda de korta variabelnamnen istället.

Dim e, t, et, e2, t2, e2t, e3, e3t, e4t
e=VbCrLf: t=VbTab: et=VbCrLf&VbTab: e2=VbCrLf&VbCrLf: t2=VbTab&VbTab
e2t=VbCrLf&VbTab&VbTab (osv, har använt e4t inbland)

(annan kod, med ett tab in) &et
response.write "<table>" &e2t 'vill ha tabellen två tab in
response.write "<tr>" &e2t
response.write "<td>" &e2t
response.write "</td>" &e2t
response.write "</tr>" &e2t
response.write "</table>" &et 'återställer med ett tab in
Medlem sedan maj 200010 687 inlägg
#8

Om du nu är så inne på att bygga allt som VBScript strängar så kan du väl i alla fall göra en funktion som spottar ut visst antal tabbar och radbrytningar.
Eller strunta i tabbar och radbrytningar i HTML-koden. Webbläsaren bryr sig inte om dem.

Eller varför inte bara skriva så här?

<table>
	<tr>
		<td>
		</td>
	</tr>
</table>

10 gånger vettigare att skriva kod som är lättläst på serversidan än som är lättläst på klientsidan.

Medlem sedan apr. 20031 660 inlägg
#9

HEJ!

Erik Juhlin skrev:

Om du nu är så inne på att bygga allt som VBScript strängar så kan du väl i alla fall göra en funktion som spottar ut visst antal tabbar och radbrytningar.
Eller strunta i tabbar och radbrytningar i HTML-koden. Webbläsaren bryr sig inte om dem.

Eller varför inte bara skriva så här?

<table>
	<tr>
		<td>
		</td>
	</tr>
</table>

10 gånger vettigare att skriva kod som är lättläst på serversidan än som är lättläst på klientsidan.

Naturligtvis använder jag inte detta för rå html, liksom att Boorg och M.Cheraghi troligtvis inte heller gör det.
Jag byggde vidare på det exempel de diskuterade för att det ska vara enkelt för andra att se skillnader.

När jag skapar javascript är det mycket enklare att se resulterande kod, eller om man vill göra html-kod mer lättläst. Allt för att undvika dumma fel, och dessutom ska det vara snyggt kodat!

Medlem sedan maj 200010 687 inlägg
#10

Det menar jag inte heller. Man kan lätt hoppa mellan HTML och ASP med hjälp av <%%>.

Ett vettigare sätt för att skriva ut rader annars...

Sub WriteLine(sText, lPreTabCount, lPostBreakCount)
	Dim i
	For i = 1 To lPreTabCount
		Response.Write vbTab
	Next 'i
	Response.Write sText
	For i = 1 To lPostBreakCount
		Response.Write vbCrLf
	Next 'i
End Sub

WriteLine "foo", 1, 1
Medlem sedan apr. 20031 660 inlägg
#11

HEJ!

Intressant lösning! Har tidigare sett funktioner som gör att det räcker skriva tex "r variabel" där funktionen "r" endast innehåller response.write; man slipper alltså skriva detta varje gång. Snabbt och effektivt!

Jag använder Auto Completion i HomeSite, skriver "res", så kommer resten av sig själv. Lite jobbigt att skriva "resultat" eller "adress" dock...

313 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
137 ms — deklarationer (db)
0 ms — hämta statistik (cache)
174 ms — hämta tråd, inlägg och bilagor (db)
136 ms — ändringar (db)