Avatar billede mireigi Novice
10. oktober 2012 - 21:29 Der er 10 kommentarer og
2 løsninger

Push data til browser

(Spørgsmålet er lagt i generelt, da det indebærer både JavaScript og server-side kode)

Hej E,

Jeg er helt med på, hvordan man med AJAX kan hente data fra en bestemt URL og vise det på en webside, uden at skulle genindlæse hele siden.

Mit problem er dog, at det udelukkende er en request-løsning. Dvs at scriptet der sætter data ind på siden, afvikles X gange i minuttet og forespørger på nyt data.

Findes der en push-løsning til at gøre det samme? Altså en løsning, hvor serveren sender dataene ud til alle klienterne, der så indsætter de nye data på siden?

Jeg tænker noget i stil med et MVC designpattern brugt i en windowsform, blot til websider i stedet for.
Avatar billede stigma Nybegynder
10. oktober 2012 - 21:34 #1
Der er et projekt der hedder APE (Ajax Push Engine), som gør dette muligt. Har dog aldrig prøvet før, men tror det er den vej man skal gå - Der er også et alternativ, i form af en socket-server som tjekker for nye data hele tiden, denne kunne man så koble op til vha JavaScript/ WebSockets, eventuelt gøre brug af node.js, som har en masse prædefineret funktioner som gør det lettere at arbejde med :)
Avatar billede mireigi Novice
10. oktober 2012 - 21:44 #2
Tak for det :)

Jeg kan se at APE bruger Comet server til sit dirtywork. Jeg mindes at have hørt det ikke spiller særligt godt sammen med .NET, hvilket er det primære jeg udvikler i :)

Er det noget du kan be-/afkræfte?

Der findes tilsyneladende noget der hedder WebSync, der gør det samme, og er garanteret at virke med .NET, men det koster $2.300 for en single-server licens, hvilket er mere end jeg er villig til at betale.
Avatar billede stigma Nybegynder
10. oktober 2012 - 21:48 #3
Det tør jeg så ikke svare på, da jeg sidder med PHP i stedet ;)

Men 2.300$ lyder satme os overpriced! - Hvis APE ikke ville du' for dig, ville jeg nok nærmere gå efter og lave en socket server :)
Avatar billede arne_v Ekspert
10. oktober 2012 - 21:52 #4
Den nemme .NET push loesning er SL med en socket til en .NET socket server.
Avatar billede arne_v Ekspert
10. oktober 2012 - 21:57 #5
https://github.com/nmosafi/aspComet virker lidt forladt, men du kunne da kigge paa det.
Avatar billede mireigi Novice
10. oktober 2012 - 22:03 #6
Tak.

Jeg har desværre ikke noget erfaring med SL eller socket server i det hele taget. Men jeg vil prøve at kigge på det.

Egentlig havde jeg bare tænkt mig at finde et library at importere, og så kalde noget kode deri, men det er åbenbart lidt mere kompliceret end som så :)

Hvis i ligger et svar begge to, kan i få nogle point.
Avatar billede stigma Nybegynder
10. oktober 2012 - 22:11 #7
Det fik du her :) - Men ja er også selv igang med at kigge på det, og man ska godt nok lige klø sig sig en ekstra gang i hovedet med det her :)
Avatar billede arne_v Ekspert
10. oktober 2012 - 22:29 #8
svar
Avatar billede magic-mouse Novice
17. oktober 2012 - 10:51 #9
Her er det et alternativ.

Desværre støttes IE ikke, men det kan du evt løse med et ajax event som kalder hver 2-3 minut (alt efter ønsket frekvens)

http://www.w3schools.com/html/html5_serversentevents.asp
Avatar billede magic-mouse Novice
17. oktober 2012 - 10:51 #10
Her er det et alternativ.

Desværre støttes IE ikke, men det kan du evt løse med et ajax event som kalder hver 2-3 minut (alt efter ønsket frekvens)

http://www.w3schools.com/html/html5_serversentevents.asp
Avatar billede mireigi Novice
17. oktober 2012 - 12:55 #11
Tak, det må jeg prøve at kigge lidt nærmere på.
Avatar billede arne_v Ekspert
17. oktober 2012 - 16:43 #12
SSE er kun en client side og protokol standard for long poll (comet). Det loeser ingen server side problemer.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester