Om det bara är max 70 användare så hade jag nog löste det med en polling teknik istället. Låt websidan kalla en webservices var 5-10 sekund (via jquery) där man kan se om något har hänt sedan jag senast pollade.
Om något har hänt så tar du och hanterar det genom att typ updatera delar av din websidan antingen gneom information du fick tillbaka, eller genom att kalla tillbaka till servern och hämta ny data.
Ok, min första tanke var att skapa en var att ha en dold iframe som låg och uppdaterad med server var femte sekund..
Nu blev det lite för avancerat med webservice och jquery? hur menar du att det skulle gå till? inte riktigt med där..
Annars tänte jag använda ajax istället för iframe och köra det mot en asp sida på servern som hela tiden kollar databasen om det är några förändringar...
Vad ska man hitta på för att avgöra om det skett några förändringar på servern då?
Klientsidan innehåller information från olika tabeller i databsen med t.ex status för olika ordrar m..m. Jag behöver ha ett sätt att kolla all relevant information i alla tabeller efter förändringar, eller ska man ha en typ av flagga i databsen för varje klient som kontrollerar efter ny information?
ok då blev det lite klarare, men måste måste man ha en ws för det eller klarar man sig på ett asp script som bara kollar mot databasen, jag tänker mig kanske 10 användare (70 var väl tilltaget)?
Men även om det hade varit en ws så måste jag väll ända på något sätt vet om uppdateringar i databasen skett eller inte? Några förslag på idéer hur man kan/brukar lösa sånt?
Mvh
Klart du kan använda ett vanlig ASP script, men då måste du ju refresha sidan och sidan kommer laddas om. Men JQuery och WS så sköts den biten helt dolt från sidan, så sidan behöver aldrig laddas om, utan man bara uppdaterar en DIV med data man får från webservicen.
Själva kontrollen om något har hänt löser du med en tidsstämpel. Varje ny rad i din databas får en tidsstämpel när den skrevs till databasen/updaterades. I ditt webservice anrop du databasen och frågar efter alla rader vars tidstämpel är större än den sista tidstämplen du fick vid förra anropet.
Gladh, du behöver ingen ws för det egentligen, och snälla, säg inte att jquery gör det ;) gå bra med vilket ramverk + egetkodad AJAX anrop som helst (fast självklart förespråkar jag jquery ;) ). och AJAX fungera med ASP med så det är ju inte ett stort problem att köra AJAX mot det, problemet är att ASP inte kan triggar något som säger att nu skall du hämta data för jag har något nytt att presentera, vilket självklart gå att lösa att man har en timeout som körs varje 5-sekund eller 5-sekunder efter det senaste godkända AJAX response som kom tillbaka.
Så då borde jag kunna göra så att..
I min klientsida använder jag mig av javascript och en timer på låt säga 5 sekunder, den timer gör ett ajax anrop ett asp script där jag också bifogar en tidstämpel, scriptet som då jämför det med de senaste posterna i databasen.
Finns det en nyare information än den bifogade tidsstämpeln så skickar scriptet tillbaka lite jaavscript kod som som laddar om hela klient sidan med senaste informationen.
Fungerar det om asp scriptet som anropas med ajax skickar tillbaka en kodsnutt i stil med
<javascript> window.location='klientsidan.asp'</javascript>
Eller hur gör jag enklast för att med den koden scriptet skickar tillbaka få hela klientsidan att ladda om?
Och självklart så varje gång klientsidan laddas om så sätter man tidsstämpeln med den tiden som gäller vid omladdningen och sen kan den fortsätta jämföras med databasen tills ny information finns...
Är det rätt tänk så, då låter det ju inte som att det skulle vara några större svårigheter?
a grejen är den att sidan är lite komplex..
Men säg då att jag mha av ajax skickar tillbaka en formulär och lite inputfält som inte fanns på sidan innan ajax anropet.. KOmmer det fungera då eller måste man inte skapa sånna objekt?
rent användarmässigt gör det ju inget om sidan laddas om, känndes bara som ett enkelt alternativ.
Du kan ju retunera vad du vill, JSON, HTML, text whatever så ser inte något större problem med det, det "stora" problemet är om du behöver binda nya Javascript events på den nya datan, vilket inte är en jätte stor sak att göra jquery live() eller delegate() kan du lösa det problemet med.
Precis, det var så jag menade. Dom nya objekten som dyker upp måste väll "bindas" då för att man ska kunna använda dom, typ onclick och liknande..
Men hur funkar det om jag returnera ett formulär med några fält, kommer det att fungera att posta det formuläret med dess innehåll som vanligt även fast att det har infogats från ett ajaxanrop?
jquery Live()
svårhanterat? ska google lite på det...
Om det är enklare att ladda om sidan, så gör anropet via jquery (eller vilket ramverk du nu vill använda) kontrollera om något har ändrats. Har inget ändrats så gör du ingetting, har något ändras så gör du bar en reload på sidan.
En bra medelväg, du slipper ladda om sidan om inget har ändrats, och något har ändrats så laddar du om sidan och kan sköta all din logik i dina code-behind filer utan att blanda in en massa klientscript (om det är det som du inte vill).
- M
267 ms totalt · 3 externa anrop · v20260731065814-full.767b4345