[PHP/Mysql] News-ticker (streaming)

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • nl2dav
  • Registratie: Juni 2001
  • Laatst online: 13-09 14:07
Hoi,

Ik heb een mooi doch simpel news-tickertje gemaakt, of ook in de volksmond wel een lichtkrant genoemd.

Het geheel werkt heel simpel, met het MARQUEE commando laat ik gewoon tekst over het beeld scrollen en de informatie wordt uit een MySQL database'je gehaald.

In admin modus (login protected) kan je scrollteksten verwijderen of toevoegen.

Allemaal leuk en aardig allemaal maar het grote probleem is dat je handmatig elke keer moet refreshen als je een nieuwsitem verwijderd of toevoegd. Dat is een beetje jammer natuurlijk.

Nu is het wel simpel om een "meta refresh" in te voegen maar dan start de ticker elke X minuten weer bij de start van zijn verhaal. Ik vind dat zonde en niet echt "streaming" (beeldopbouw wordt dan lelijk). Nu heb ik wel geprobeert om de oplossing ergens op te Google'n maar helaas zonder resultaat.

Het enige gevonden idee staat hier. Daar wordt ook niet echt een passend antwoord gegeven alleen een omzeiling van het probleem. (Wat voor de vraagsteller in dit geval voldoende was).

Iemand ervaring met het "open houden van een HTTP connection" en het constant "flushen van PHP data" ? Of een andere ingeving?

Acties:
  • 0 Henk 'm!

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 19:01

me1299

$ondertitel

nl2dav schreef op 26 februari 2003 @ 15:55:
Hoi,

Ik heb een mooi doch simpel news-tickertje gemaakt, of ook in de volksmond wel een lichtkrant genoemd.

Het geheel werkt heel simpel, met het MARQUEE commando laat ik gewoon tekst over het beeld scrollen en de informatie wordt uit een MySQL database'je gehaald.

In admin modus (login protected) kan je scrollteksten verwijderen of toevoegen.

Allemaal leuk en aardig allemaal maar het grote probleem is dat je handmatig elke keer moet refreshen als je een nieuwsitem verwijderd of toevoegd. Dat is een beetje jammer natuurlijk.

Nu is het wel simpel om een "meta refresh" in te voegen maar dan start de ticker elke X minuten weer bij de start van zijn verhaal. Ik vind dat zonde en niet echt "streaming" (beeldopbouw wordt dan lelijk). Nu heb ik wel geprobeert om de oplossing ergens op te Google'n maar helaas zonder resultaat.

Het enige gevonden idee staat hier. Daar wordt ook niet echt een passend antwoord gegeven alleen een omzeiling van het probleem. (Wat voor de vraagsteller in dit geval voldoende was).

Iemand ervaring met het "open houden van een HTTP connection" en het constant "flushen van PHP data" ? Of een andere ingeving?
Je kan opzich wel gaan streamen met php, maar dan blijft je pagina de hele tijd laden, en dat is ook weer niet echt netjes.

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

Je kunt een appet schrijven die iedere minuut de (eventuele) nieuwe headlines ophaalt. Een alternatief is je marque in een iframe te laden, en die iframe iedere minuut te refreshen. In internetexplorer krijg je dan wel iedere keer die iritante klik.

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

  • nl2dav
  • Registratie: Juni 2001
  • Laatst online: 13-09 14:07
Een applet is java(script) heh? ... Ik heb daar wel ervaring mee maar hoe meer ik weet wat ik met php/mysql kan, des te meer ik van dat java(script) af wil ;)

Het is opzich niet zo bezwaarlijk dat de pagina constant loopt te laden, voor het doel wordt IE fullscreen gezet dus zie je die statusbar toch niet.

refresh klik geluidje is er overigens easy uit te halen (Windows Sound Settings)

Dat streamen met PHP is opzich wel interessant maar ik weet nog niet hoe....

Acties:
  • 0 Henk 'm!

Verwijderd

Waar komt die marque te staan ? gewoon op een frontpage van je site ofzo ? in dat geval zou ik gewoon een random item uit je mysql tabel halen en die weergeven.

Ik neem aan dat mensen niet langer als 15 minuten ofzo op je frontpage blijven hangen en in die tijd echt wel een keer zijn geswitched van pagina. Wanneer er geswitched (gebrowsed) wordt naar een andere pagina van je zal die nieuwe tekst wel worden weergegeven.

Echter wanneer de pagina iet met active desktop te maken heeft kun je net zo goed de complete pagina om de x minuten refreshen..

[edit]
Ik denk niet dat je moet gaan streamen, dan moet je met sockets gaan werken, connecties maken die oneindig open blijven staan, wanneer je 1000 bezoekers hebt blijft je script voor 1000 gebruikers actief... ik weet niet precies wat je van plan bent maar ik zou gaan zoeken naar een alternatief, denk hierdan aan Java applets, iets met Javascript en dhtml, flash kan ook nog.. maar probeer het gebruik van sockets niet te gaan toepassen in een pagina die mogelijk door 100+ gebruikers gebruikt zal worden

[edit2]
ik denk dat wat je hebt gevonden juist net wel erg bruikbaar is. Als ik het commentaar van us111 op die site bekijk noemt hij een erg mooie site: http://www.dansteinman.com/dynduo/en/dynwindow.html Hier wordt een functie aangeboden onder het kopje "Loading Files" waarmee dus bijvoorbeeld je marquee uit een appaart php bestand zou kunnen worden geladen.

[ Voor 47% gewijzigd door Verwijderd op 26-02-2003 18:23 ]


  • megamuch
  • Registratie: Februari 2001
  • Laatst online: 08-12-2024

megamuch

Tring Tring!

let trouwens op dat het marquee commando in opera niet werkt.. (voor zover ik heb getest)

ik had op hotscripts een flash ticker gevonden, echter op dit moment kan ik hem weer niet vinden. (toevallig vorige week ook daar op zoek naar geweest) Deze was niet streaming maar misschien dat je met flash hem wel streaming kan maken. (zelf geen ervaring hiermee)

Verstand van Voip? Ik heb een leuke baan voor je!


  • nl2dav
  • Registratie: Juni 2001
  • Laatst online: 13-09 14:07
Het is voor intern gebruik bij een bedrijf waar ik werk. Voor de lol (geen commercieel belang) een nieuws tickertje gemaakt die op een scherm onderin draait in 5% van een frame... (95% andere info).

Niet echt van belang allemaal, maar ik zie het als een uitdaging ;)... Er is dus eigenlijk maar 1 machine die constant een webpage laat zien met onderin dus die "ticker" ...

Op Flitsservice (zie sig) draait wel een java appletje die het wel doet op de manier zoals jullie beschrijven alleen is dat niet met scrollende tekst maar meer als een soort klapbord...

Opzich wel leuk, maar ik moet gebruik maken van een groot lettertype om het vanaf een grotere afstand leesbaar te maken en zo'n klapbord structuur heeft weer de beperking dat je er niet echt prettig langere zinnen op kwijt kan zonder dat je "leeshaperingen" krijgt voor diegene die het moeten lezen...

Kunnen mensen mij nog volgen? 8)

Anyway, ik kijk nog even naar de mogelijkheden, wel jammer dat streaming lichtkrant tekst nog niet echt bekend is... Bij stockquotes sites (waar dit, lijkt mij, een echte hype zou zijn) heb ik ook gekeken maar helaas is dat allemaal niet streamed maar statisch (manual resfresh, of een lelijke auto-refresh)....

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

tipje:

maak een hidden iframe aan in je frame met je ticker, die laat je telkens de content van je info bestand op de server opnieuw ophalen.
Dan kijk je met wat javascript of de content veranderd is, en zo ja dan maak je een mooie fade naar een nieuw item met wat directx filters ofzo.

Stop uploading passwords to Github!


  • nl2dav
  • Registratie: Juni 2001
  • Laatst online: 13-09 14:07
Oke bedankt voor alle ideeen!

Maar volgens mij heb ik uiteindelijk zelf toch de meest eenvoudige en simpelst te implementeren oplossing bedacht O-) ...

Ik heb mijn idee nog niet uitgevoerd (probeer ik morgen of van et weekend wel even denk ik) maar hij ziet er ruwweg als volgt uit;

de scrollrate is een vaste waarde (in pixels/seconde ofzoiets), de pixelbreedte van het gebruikte font is bekend en het aantal gebruikte karakters is min-of-meer bekend.

Met deze gegevens weet ik altijd hoe lang het duurt voordat de gehele lichtkrant een complete display cyclus heeft doorlopen en wil beginnen aan een nieuwe.

Als ik me PHP verhaaltje nou zo schrijf dat hij bij elke refresh bepaald hoeveel karakters er in mijn MySQL lichtkrant-database zitten en met behulp van dat gegeven de scrollduur van de op-dat-moment weer te geven ticker uitrekend... Weet ie tot op de (milli)seconde nauwkeurig wanneer het einde van de scroll is bereikt en er een refresh gegeven moet worden.

Als je dan die berekende karakter-afhankelijke-refresh-variabele (woow) via een php header() instructie in de vorm van een meta-tag laat genereren dan moet de refresh altijd plaats vinden aan het einde van een complete tickercyclus...

En dat is precies een dood punt waarin je nooit een "lelijke" refresh zal zien of een refresh middenin de ticker waardoor je nooit alle informatie van een cyclus gezien zal hebben.

Zo, heel verhaal om het een beetje uit te leggen maar volgens mij mag ik toch voorzichtig concluderen dat dit wel een goed werkende oplossing zal zijn met zo min mogelijk "gedoe" en toch gebaseerd is op PHP/MySQL..

Offe... Niet? ... :9

Verwijderd

Mij lijkt het sowieso niet echt handig om te gaan streamen met PHP en MySQL. De database wordt enorm belast en ik denk dat je daar nou ook weer niet op zit te wachten.

Verder vraag ik me ook af, waarom zou je willen dat dit zonder refreshen wordt vernieuwd ?

  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

is Flash anders geen oplossing? :)

"You're only as good, as what you did last week."


Acties:
  • 0 Henk 'm!

  • nl2dav
  • Registratie: Juni 2001
  • Laatst online: 13-09 14:07
Verwijderd schreef op 27 februari 2003 @ 23:23:
Mij lijkt het sowieso niet echt handig om te gaan streamen met PHP en MySQL. De database wordt enorm belast en ik denk dat je daar nou ook weer niet op zit te wachten.

Verder vraag ik me ook af, waarom zou je willen dat dit zonder refreshen wordt vernieuwd ?
Omdat het bij een gewone refresh ontzettend lelijk is om je lichtkrantje middenin in een tekst te laten refreshen.

Dan zie je em steeds halve zinnen weergeven, vandaar dat ik dacht waarom niet streaming dan zie live de tekst veranderen wat helemaal :9~ zou zijn. Met andere woorden alleen een refresh/update als dat ook werkelijk nodig is.

Die "slimme refresh" is daarintegen ook een oplossing voor alle problemen... Alleen zit ik me nu weer af te vragen of een . en bv. een X wel uit dezelfde pixelbreedte bestaat...Zometeen even uitzoeken :z
Pagina: 1