webForumDet fria alternativet

förklara gärna ord...

.NET

9 svar · 262 visningar · startad av Brimba

Medlem sedan dec. 19995 874 inlägg
Frågan#1
  1. void
  2. EventArgs E
  3. Object Source
  4. Object Sender

Hur fungerar kopplingen mellan server-klient?
Tidigare var det ju iaf så att klienten skickade en förfrågan, servern returnerade ett svar och connections stängde.
Är det nu möjligt att connectionen är öppen efter att klienten har fått svaret, och sedan få nya svar, när servern har en uppdaterad fråga.

Ni får gärna berätta fritt allt ni vet om asp.net och gärna om ramverket också.
All information är intressant :)
Länkar är givetvis intressanta, men jag har läst de flesta inlägg här i .net forumet och har granskat de flesta länkarna redan :)

Så släpp lös era tankar om asp.net och dess ramverk!

------------------
Mvh
Patrik aka Brimba

Medlem sedan apr. 20007 588 inlägg
#2
  1. void
    Tomrum. Deklaras som returtyp för metoder som ej returnerar något.

  2. EventArgs E
    Deklaration av ett objekt E av klassen EventArgs, EventArgs håller information om händelser (events).

  3. Object Source
    Deklaration av ett objekt Source av klassen Object. Object är superklass för alla klasser i ramverket vilket innebär att alla klasser ärver från Object.

  4. Object Sender
    Se ovan.

Tidigare var det ju iaf så att klienten skickade en förfrågan, servern returnerade ett svar och connections stängde.

Menar du HTTP? I så fall så är svaret att det är på samma sätt som tidigare.

------------------
det finns ingen.info tillgänglig.

"inside every human being there's an american trying to get out".

Medlem sedan juni 20008 205 inlägg
#3

Menar du HTTP? I så fall så är svaret att det är på samma sätt som tidigare.
... och det innefattar väl även keep-alive (eller vad det nu heter) som gör att man kan göra flera förfrågningar per anslutning?

------------------
You can be a coward for a few minutes, or dead forever. /Rincewind

Medlem sedan apr. 20007 588 inlägg
#4

Jo, det är sant, men det är ju inget nytt i och med .NET, det har delvis funnits sedan HTTP 1.0.

Keep-alive är dock ingen säker teknik att använda, det finns ingen garanti för att servern eller klienten kommer att hålla kopplingen öppen.

------------------
det finns ingen.info tillgänglig.

"inside every human being there's an american trying to get out".

Medlem sedan aug. 2001458 inlägg
#5

Förvisso är det som du säger inte ett krav att servern stöder keep-alive eller att klienten begär det. Men i praktiken används alltid keep-alive. Både i fallet browser mot en vanlig website samt i fallet då man kör exempelvis soap mellan två servers.

Det dödar performance om man skulle stänga kopplingen varje gång. Det man kan göra är att stänga kopplet exempelvis var 10:e minut för att få bättre lastbalnsering om man har ett kluster.

Medlem sedan apr. 20007 588 inlägg
#6

Men i praktiken används alltid keep-alive. Både i fallet browser mot en vanlig website samt i fallet då man kör exempelvis soap mellan två servers.

Jo visst är det så, från och med HTTP 1.1 så skall det alltid vara keep-alive om inte motsatsen specificeras, men det är fortfarande inget som man kan vara helt säker på att det kommer fungera smärtfritt :).

------------------
det finns ingen.info tillgänglig.

"inside every human being there's an american trying to get out".

Medlem sedan feb. 20001 590 inlägg
#7

Servern känner av vilken typ av klient det är, och skapar filen som returneras därefter. Detta gäller inte bara HTML utan även de Javascript som genereras automatiskt. Så vilken typ av klient, och vilket stöd just den klienten har, berör inte "oss" utvecklare.

mao. keep-alive osv. behöver inte vi tänka på, det är helt "transparent"

/T

------------------
Jensen Ambassadör, mitt bästa köp! www.jensen.no

Medlem sedan feb. 20001 590 inlägg
#8

Kan visa ett litet men mycket illustrerande exempel, ett formulär, en knapp, en bild.
(i C#)

<%@Page Language="C#"%>
<html>
<head>
<script language="C#" runat="server">
void bytbild(object source, eventargs e)
{
if(image1.imageurl=="bild1.jpg")
  image1.imageurl="bild2.jpg"
else
  image1.imageurl="bild1.jpg"
}
</script>
</head>
<body>
<form runat="server" id=form1 name=form1>
<asp:image id=image1 imageurl="bild1.jpg" runat="server"/>
<br>
<asp:button id=button1 text="Byt bild!" onclick="bytbild" runat="server"/>
</form>
</body>
</html>

Ganska självbeskrivande vad koden gör. Genom att klicka på knappen, så körs funktionen bytbild på servern, sidan renderas om med den nya bilden...

/T

------------------
Jensen Ambassadör, mitt bästa köp! www.jensen.no

[Redigerat av Toonster den 17 dec 2001]

Medlem sedan dec. 19995 874 inlägg
#9

Det är ganska känsligt för små och stora bokstäver :)

<%@Page Language="C#"%>
<html>
<head>
<script language="C#" runat="server">
void bytbild(Object Source, EventArgs E)
{
	if(image1.ImageUrl=="bild1.jpg")
		image1.ImageUrl="bild2.jpg";
	else
		image1.ImageUrl="bild1.jpg";
}
</script>
</head>
<body>
	<form runat="server" id=form1 name=form1>
	<asp:image id=image1 imageurl="bild1.jpg" runat="server"/>
	<br>
	<asp:button id=button1 text="Byt bild!" onclick="bytbild" runat="server"/>
	</form>
</body>
</html>

Tack för exemplet.

------------------
Mvh
Patrik aka Brimba

Medlem sedan feb. 20001 590 inlägg
#10

Märkligt, jag kopierade och klistrade in...
Visst är det typkänsligt.
Glömde skriva att det är ett exempel på en funktion med returdatatypen void

/T

------------------
Jensen Ambassadör, mitt bästa köp! www.jensen.no

2009 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
1864 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
1871 ms — ändringar (db)