webForumDet fria alternativet

Uppdatera viss del av sidan

JavaScriptur Javascript

23 svar · 583 visningar · startad av greggan

Medlem sedan jan. 2004678 inlägg
Frågan#1

Hejsan

På min sida finns det en liten menyruta som uppdateras var tionde sekund för att man ska kunna se om man har fått något nytt internmail.

Denna sida har jag lagt i en iframe. Det fungerar bra och det finns egentligen inga problem med det.

Dock blir jag lite irriterad på att om man ska trycka på Bakåt-knappen så måste man typ trycka 500 ggr eftersom sidan har refreshat ett antal ggr sedan man gjorde något på sidan.

Dessutom är det ruskigt irriterande med klickljudet som finns i IE som hörs varje gång en sida uppdateras. Visst, det ljudet kan man stänga av men det vet kanske inte alla som är inne på sidan.

Då undrar jag, kan jag göra detta på något annat sätt en med en iframe som uppdateras? Typ att en table på något sätt får informationen och sen uppdateras, dock inte att sidan uppdateras.

Mina tankar går lite åt javascript, kan det finnas nån lösning där?

Medlem sedan juni 20019 024 inlägg
#2

Det är bättre att låta användaren själv uppdatera sidan för att se om det har kommit något nytt mail. Beroende på vad det är för typ av sida (artiklar, community etc) så varierar lästiden. Jag tror nog att de flesta hinner vänta tills nästa sidladdningen för att se om det har kommit något nytt meddelande. ;)

Att använda redirect var tionde sekund ger som du ser klara problem med tillgängligheten och bör undvikas. JavaScript-metoden kan fundera, men återigen - varför? Det räcker gott och väl med att invänta nästa sidladdning.

Medlem sedan apr. 2004778 inlägg
#3

Flyttas från ASP.NET.

Medlem sedan jan. 2004678 inlägg
#4

Jo men, jag vill att användaren ska kunna se på sidan om dom fått ett nytt meddelande, visst jag kan ha att sidan uppdateras var tionde minut, det är strunt samma, men jag vill fotfarande att användaren inte ska behöva gå in nånstans för att se om dom fått nya. Det ska synas tydligt vid sidan på en meny om man fått nytt meddelande.

Vare sig jag uppdaterar var tionde sekund eller minut så har jag fortfarande den här uppdateringen som jag inte tycker om.

Pace skrev:

JavaScript-metoden kan fundera

Hur skulle man göra det då?

Medlem sedan jan. 2004678 inlägg
#5

Något att tillägga är:
Jag har ett fält i databasen där det står hur många nya meddelanden en användare har. Jag vill gärna att javascriptet/sidan (lösningen?) kollar mot databasen kanske 4 gånger per minut för att se hur många nya meddelanden som finns för att sedan visa den siffran klart och tydligt på sidan så att användaren kan se den. :)

Medlem sedan aug. 2000374 inlägg
#6

Re: Uppdatera viss del av sidan

greggan skrev:

[...]Mina tankar går lite åt javascript, kan det finnas nån lösning där?

En JavaScript timer och XMLHttpRequest borde funka ypperligt.

Ett tipps är att använda dig utav HEAD metoden samt huvuden för att kommunicera med klienten:

Request:

HEAD /checkmail.pl HTTP/1.1
HOST: [url]www.host.com[/url]

Response:

HTTP/1.1 200 OK
X-Has-New-Mail: True
Medlem sedan jan. 2004678 inlägg
#7

sidan skrev:

you may occasionally find it convenient to connect an HTML presentation directly to XML data for interim updates without reloading the page.

Låter ju som det är vad jag är ute efter, dock känns det väldigt avancerat.
Har läst igenom sidan och försökt förstå, men du har inte lust att försöka skriva ett simpelt exempel? Eller iaf förklara lite?
Dessutom blir jag lite fundersam över hur jag ska kunna hämta ett värde från databasen när den där sidan förklarar XML...

Medlem sedan aug. 2000374 inlägg
#8

greggan skrev:

Låter ju som det är vad jag är ute efter, dock känns det väldigt avancerat.

Relativt, har du grundläggande kunskaper i HTTP och JavaScript så borde du kunna fixa det enkelt.

greggan skrev:

Har läst igenom sidan och försökt förstå, men du har inte lust att försöka skriva ett simpelt exempel?

Såg du exemplet i artikeln?

An Example: Reading XML Data from iTunes RSS Feeds

greggan skrev:

Eller iaf förklara lite?
Dessutom blir jag lite fundersam över hur jag ska kunna hämta ett värde från databasen när den där sidan förklarar XML...

Browsern/XMLHttp kommunicerar via HTTP till webservern/applikationen som i sin tur returnerar huvuden/fält och eventuellt innehåll (XML).

Medlem sedan jan. 2004678 inlägg
#9

nej jag såg visst inte exemplet i artikeln, men nu när jag kollar så är det fortfarande lite knas. den hämtar ju ut information från en XML-fil. Hur gör jag om jag vill hämta från en databas? Det enda sättet jag kan göra databaskopplingar det är i asp.net och dom görs ju medan sidan exekveras...

Medlem sedan apr. 20003 174 inlägg
#10

Skulle du inte kunna använda javascript-metoden

[red]location.replace()[/red]

för detta?

Medlem sedan jan. 2004678 inlägg
#11

ingen aning om vad det är för något.. kan typ inget om javascript. =S

Medlem sedan apr. 20003 174 inlägg
#12

www.devguru.com skrev:

The replace method replaces the current History entry with the specified URL.

Så det jag tror du kan göra är att skapa en timer-funktion som replace´ar sidan enligt ett tidsintervall, ex:

[red]function foo()
{
	parent.location.replace('frame.asp');
	setTimeout("foo()",100000);
}[/red]
Medlem sedan jan. 2004678 inlägg
#13

lägger ja in det i huvudsidan då eller? :S

Medlem sedan apr. 20003 174 inlägg
#14

Nje, lägg in det i sidan som du visar i din iframe.

Medlem sedan juli 2000232 inlägg
#15

Man kan väl låta ett javascript snacka med en web service också har jag för mig, kolla på följande:

http://support.microsoft.com/Default.aspx?kbid=555057

Medlem sedan jan. 2004678 inlägg
#16

tackar Palle, det verkar fungera! =D

Medlem sedan jan. 2004678 inlägg
#17

anbj: det kanske hade gått också, men nu när det löste sig ändå så orkar jag inte läsa igenom hela den där sidan :r

Medlem sedan jan. 2004678 inlägg
#18

hmm...
jag fick det inte alls att fungera, tog ut segern lite väl tidigt i förskott där... hur ska jag anropa den där javascriptfunktionen? jag körde <body onload="foo()">
men det verkar inte hända något.. :r

Medlem sedan apr. 20003 174 inlägg
#19

La du onload-anropet i din iframe?
Får du något meddelande om scriptfel?

Medlem sedan jan. 2004678 inlägg
#20

la den i body onload i den sidan som hamnar i min iframe.

inget meddelande om scriptfel, men nere i hörnet så är det en gul triangel med utropstecken i som det brukar vara när det är scriptfel på sidan.

151 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
147 ms — hämta tråd, inlägg och bilagor (db)