Kom ihåg mig?
Home Menu

Menu


AJAX keep alive för mindre belastning

Ämnesverktyg Visningsalternativ
Oläst 2008-07-09, 01:53 #1
pontusappel pontusappel är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2004
Inlägg: 13
pontusappel pontusappel är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2004
Inlägg: 13
Hej,

jag har ett AJAX-script som kör var 5e sekund och uppdaterar en tabell.
Med flera användare påfrestar detta servern ganska mycket.
Jag har ändrat detta till ett AJAXscript som endast kollar om en uppdatering är nödvändig och i så fall uppdaterar tabellen genom ett nytt AJAX-anrop.

Med Firebug ser jag att med första lösningen tar tabell-uppdateringen kanske ca 500ms.
Med nya lösningen tar checken ca 400ms och sedan tabelluppdateringen endast 2ms.

Det verkar alltså som om det är själva kopplingen mot servern som tar tid, inte hämtningen av data.

Det andra scriptet anropas inom det första om uppdatering är nödvändig. Innebär detta att kopplingen till servern redan är där, därav det snabba svaret?
Andra frågan är om det finns någon möjlighet att med AJAX hålla en koppling mot servern för att slippa kopplingen så ofta.

Vore väldigt tacksam om någon har en lösning eller uppslag.
Hälsningar,
Pontus.
pontusappel är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-09, 10:48 #2
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
Kika lite på Comet, kanske kan vara en lösning du efterfrågar?
http://en.wikipedia.org/wiki/Comet_(programming)
nosnaj är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-08-04, 09:56 #3
oddholst oddholst är inte uppkopplad
Medlem
 
Reg.datum: Aug 2007
Inlägg: 127
oddholst oddholst är inte uppkopplad
Medlem
 
Reg.datum: Aug 2007
Inlägg: 127
Jag har funderat på ett liknande problem men ännu inte skapat en "lösning" för detta, men jag har funderat på att använda information om bland annat hur många anrop som sker vid ett givet tillfälle och vad svarstiderna är och låta ajax-klienten anpassa sina uppdateringar efter detta.

Exempel:
Mitt anropsskript mäter upp att min server blir slö vid 50 anrop per sekund. Om jag nu har 70 anrop per sekund så skickar jag info med varje anrop att uppdateringsintervallen skall vara minst (70/40) sekunder, dvs antalet anrop nu delat med det antal som jag vet att servern klarar per sekund med en liten marginal. Efterhand som antalet anrop ökar så får klienterna information om detta och anpassar uppdateringsintervallet.

Samtidigt mäter klienterna svarstiden från anrop till att svaret har kommit till klienten. Detta värde skickas till servern vid nästa anrop och ligger till grund för beräkning av uppdateringsintervallen som nämns i stycket ovan.

Tänker jag rätt?
oddholst är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-08-04, 10:46 #4
eliasson eliasson är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2005
Inlägg: 1 863
eliasson eliasson är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2005
Inlägg: 1 863
Citat:
Originally posted by oddholst@Aug 4 2008, 09:56
Tänker jag rätt?
Visst är det ett fungerande koncept, men varför inte istället använda Comet-tekniken som nämns ovan?
Det blir minst trafik om du låter Webbservern skicka ut datan när det finns data att skicka ut, än att klienten "frågar" med jämna intervall.
eliasson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-08-04, 11:25 #5
oddholst oddholst är inte uppkopplad
Medlem
 
Reg.datum: Aug 2007
Inlägg: 127
oddholst oddholst är inte uppkopplad
Medlem
 
Reg.datum: Aug 2007
Inlägg: 127
Citat:
Ursprungligen postat av eliasson
Citat:
Ursprungligen postat av oddholst
Tänker jag rätt?
Visst är det ett fungerande koncept, men varför inte istället använda Comet-tekniken som nämns ovan?
Det blir minst trafik om du låter Webbservern skicka ut datan när det finns data att skicka ut, än att klienten frågar med jämna intervall.
Hur påverkar detta prestandan på servern? Jag får läsa lite på tekniken...
oddholst är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-08-04, 16:05 #6
eliasson eliasson är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2005
Inlägg: 1 863
eliasson eliasson är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2005
Inlägg: 1 863
Citat:
Ursprungligen postat av oddholst
Citat:
Originally posted by -eliasson@Aug 4 2008, 10:46
Citat:
Ursprungligen postat av oddholst
Tänker jag rätt?
Visst är det ett fungerande koncept, men varför inte istället använda Comet-tekniken som nämns ovan?
Det blir minst trafik om du låter Webbservern skicka ut datan när det finns data att skicka ut, än att klienten frågar med jämna intervall.

Hur påverkar detta prestandan på servern? Jag får läsa lite på tekniken...
Allt handlar ju om man vill "slösa"; CPU-kraft eller bandbred.
eliasson är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 14:30.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017