Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [jQuery] Art Newsfeed - wie realisieren? (https://www.delphipraxis.net/157600-%5Bjquery%5D-art-newsfeed-wie-realisieren.html)

Yheeky 17. Jan 2011 23:36

[jQuery] Art Newsfeed - wie realisieren?
 
Hi,

ich habe eine Webseite mit Nachrichten, die ich gerne in "Echtzeit" laden möchte. Die Frage ist wie man das am Besten und Sinnvollsten realisiert. Ich benutze eine MS SQL Datenbank und programmiere mit ASP.net und jQuery.
Meine erste Idee ist es über JavaScript einen Timer aufzusetzen und immer einen AJAX-Call abzusetzen und so die Daten zu laden. Ist das in euren Augen eine gute Lösung? Mein anderer Ansatz wäre eine Art "Push"-Funktion über die Datenbank aber ich weiss nicht ob es sowas gibt?! Weiss da einer von euch mehr?

Bin gespannt auf eure Antworten!

Gruß Christian

Phoenix 18. Jan 2011 06:38

AW: [jQuery] Art Newsfeed - wie realisieren?
 
Push ist Web tricky.
Das Problem ist, dass Du ja nicht vom Webserver aus eine Verbindung zum Browser aufmachen kannst um die Daten zu senden.

Wenn die Webseite die Daten pullt ist das relativ okay. Die einzige Push-Technologie die einigermassen ordentlich funktioniert ist die hier: http://www.lightstreamer.com/ - der benötigt aber einen Server-Part der in Java geschrieben ist und auf dem Browser jede Menge(!) Javascript. Die haben zwar ne kostenlose Edition, ich weiss aber nicht genau wie da die Bedingungen sind.

Also die Idee alle X Sekunden Daten zu pullen ist wie gesagt ganz okay. Reduzier die übertragenen Daten indem Du sie als JSON überträgst und pack sie dann im Browser in die Anzeige per callback. Ist massiv weniger aufwand und funktioniert genausogut :)

Yheeky 18. Jan 2011 08:16

AW: [jQuery] Art Newsfeed - wie realisieren?
 
Hi Phoenix,

ich dachte mir schon, dass eine Push-Variante schwierig wird.
Die Pull-Variante gefällt mir eigentlich auch besser und ist auch leichter umzusetzen.

Genauso habe ich es nämlich auch bisher umgesetzt...dann brauche ich am Code ja nichts mehr ändern :-) ich hatte manchmal den Eindruck, dass es nicht sooo performant ist, aber man muss ja auch nicht jede Sekunde nach neuen Nachrichten suchen ;-)

Danke und Gruß
Christian

joachimd 18. Jan 2011 10:27

AW: [jQuery] Art Newsfeed - wie realisieren?
 
Zitat:

Zitat von Phoenix (Beitrag 1075398)
Reduzier die übertragenen Daten indem Du sie als JSON überträgst und pack sie dann im Browser in die Anzeige per callback. Ist massiv weniger aufwand und funktioniert genausogut :)

Servus Phönix. Hast Du zufälligerweise ein Beispiel dafür rumschwirren? PHP, falls möglich, aber den Serverteil kann ich mir zur Not auch selbst basteln;)

Florian Hämmerle 18. Jan 2011 11:53

AW: [jQuery] Art Newsfeed - wie realisieren?
 
Zitat:

Zitat von joachimd (Beitrag 1075455)
Zitat:

Zitat von Phoenix (Beitrag 1075398)
Reduzier die übertragenen Daten indem Du sie als JSON überträgst und pack sie dann im Browser in die Anzeige per callback. Ist massiv weniger aufwand und funktioniert genausogut :)

Servus Phönix. Hast Du zufälligerweise ein Beispiel dafür rumschwirren? PHP, falls möglich, aber den Serverteil kann ich mir zur Not auch selbst basteln;)

Hallo Joachim,

Das hier hat mir den Einstieg damals sehr erleichert.

mfg Florian

joachimd 18. Jan 2011 13:00

AW: [jQuery] Art Newsfeed - wie realisieren?
 
Zitat:

Zitat von Florian Hämmerle (Beitrag 1075486)
Das hier hat mir den Einstieg damals sehr erleichert.

genau, was ich suchte. Danke Dir.

Yheeky 23. Feb 2011 07:28

AW: [jQuery] Art Newsfeed - wie realisieren?
 
Hi,

ich würde das Thema gerne nochmal aufgreifen.
Ich habe meine Seite nun soweit fertig und ich prüfe per SetInterval jede 5 Sekunden, ob neue Nachrichten existieren. Darüber hinaus habe ich noch 3 andere Funktionen, die zeitlich Dinge prüfen müssen. Manche Funktionen geben nur ein true oder false zurück, aber irgendwie habe ich ein ungutes Gefühl dabei, soviele Dinge im Hintergrund zu prüfen.
Wie machen das denn andere Seiten, die mehrere Daten auf Aktualität prüfen (ohne Reload)? Ist meine Sorge womöglich unbegründet?

Gruß Christian

Florian Hämmerle 23. Feb 2011 10:21

AW: [jQuery] Art Newsfeed - wie realisieren?
 
Deine Sorge ist unbegründet. Es ist ja nur ein sehr kleines Request. Das sollte auf die Performance keine spürbare Auswirkung haben.

Yheeky 23. Feb 2011 10:34

AW: [jQuery] Art Newsfeed - wie realisieren?
 
Macht es von der Performance einen Unterschied, wenn ich die Ajax-Aufrufe alle in einen packe?

Florian Hämmerle 23. Feb 2011 10:49

AW: [jQuery] Art Newsfeed - wie realisieren?
 
Meinst du damit, dass du statt 4 Requests, 1 machst? Dann hat es einen kleinen Vorteil, weil die Verbindung nur einmal hergestellt werden muss. Die Arbeit auf dem Server dauert je nach PHP-Programmierung eben kürzer oder länger.

mquadrat 23. Feb 2011 11:29

AW: [jQuery] Art Newsfeed - wie realisieren?
 
Wenn sämtliche Funktionen im gleichen Intervall laufen und immer nur gemeinsam (de)aktiviert werden, dann kannst du das in einen Request packen. Dem Browser dürften die Requests aber ziemlich egal sein. Man muss halt schauen, dass man z.B. wenn man gleichzeitig noch viele Animationen hat, nicht zu viele Timer bekommt. Aber ich meine die Animationen würden bei jQuery über einen gemeinsamen Timer laufen - wobei ich mir da grade nicht ganz sicher bin.

Yheeky 10. Jun 2011 10:24

AW: [jQuery] Art Newsfeed - wie realisieren?
 
Hi,

und nochmal würde ich das Thema gerne aufgreifen ;)
Wenn meine Seite in mehreren Tabs aufgerufen wird, dann werden die Aktualisierungen natürlich auch in jedem Tab gemacht. Kann man das irgendwie verhindern bzw. synchronisieren? Oder ist das auch nicht wirklich kritisch von der Performance?

Danke! :)

Zuck 10. Jun 2011 11:05

AW: [jQuery] Art Newsfeed - wie realisieren?
 
Ich nehme mal an du meinst Browser-Tabs. Die behandelt der Browser i.A. als eigenständige Prozesse (guck dir beispielsweise mal im Taskmanager um, wenn du Google Chrome mit mehreren Tabs geöffnet hast).
Von der Performance macht das gar nichts. Du willst ja schließlich keine MBs übertragen sondern nur nen Newsfeed aktualisieren. Das hat im kleinsten Fall die Meldung "{uptodate:true}", wenn du JSON zur Übermittlung verwendest. Kannst du natürlich auch noch auf "{u:1}" kürzen. Die paar Bytes spürst du gar nicht. Schau dir mal an, was Facebook, Twitter und Co an Daten rumschubsen. Und da funktioniert auch alles sehr flüssig.

Zuck


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz