Nieuwe order detecteren en muziekje afspelen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Furio Scripting

Furio Scripting

11/07/2016 13:59:27
Quote Anchor link
Ik wil graag bij binnenkomst van een order een melodietje afspelen... muziekje afspelen moet wel goed komen alleen hoe kan ik het beste aanpakken...

Ik heb een functie die de totale orders ophaalt.. lets say 10 orders momenteel.
Ik heb een page refresh van 5 seconden, dus iedere 5 seconden ververst de pagina.

Nu wil ik dus direct na refresh vergelijken of de waarde meer of minder is als voor de refresh maar hoe doen we dit het beste? Ik dacht iets met sessies maar kom nog niet uit de logica.
 
PHP hulp

PHP hulp

24/11/2024 11:10:53
 
Ward van der Put
Moderator

Ward van der Put

11/07/2016 14:11:59
Quote Anchor link
Furio Scripting op 11/07/2016 13:59:27:
Ik heb een page refresh van 5 seconden, dus iedere 5 seconden ververst de pagina.

Dat zou ik heroverwegen, want een volledige refresh per 5 seconde loopt nogal op:

• 12 per minuut;
• 720 per uur;
• 17.280 per dag;
• 120.960 per week;
• 44.150.400 per jaar.

On te beginnen zou ik niet de gehele pagina refreshen, maar alleen met Ajax de laatste 10 orders ophalen. Wijzigt daarin het hoogste ordernummer, dan heb je beet: *tingeling* een nieuwe order.

Ten tweede is dit typisch een situatie waarin een push veel beter is dan een pull. Bij een pull moet de client steeds controleren of er een nieuwe order is en schiet je daarom veel vaker mis dan raak. Bij een push heb je slechts één notificatie van server naar client nodig: hallo, er is een nieuwe order.
 
Furio Scripting

Furio Scripting

11/07/2016 14:34:26
Quote Anchor link
Ajax willen we inderdaad naartoe maar voor nu nog even via een simpele gehele refresh om de zoveel seconde/minuten.

Is er een manier om bijvoorbeeld de huidige orders in een sessie te zetten en vervolgens direct na refresh opnieuw te kijken of deze hoger is als de sessie? Zo ja update sessie naar nieuwste en speel muziekje?
 
Ward van der Put
Moderator

Ward van der Put

11/07/2016 14:50:09
Quote Anchor link
Afgaande op je andere topics gebruik je OpenCart en dan hoef je niet het wiel opnieuw uit te vinden:

http://www.opencart.com/index.php?route=extension/extension/info&extension_id=21523
http://www.opencart.com/index.php?route=extension/extension/info&extension_id=23481

Je kunt inderdaad het hoogste ordernummer opslaan in de sessie en vervolgens op een later tijdstip controleren of dat ondertussen gewijzigd is.
 
Ivo P

Ivo P

11/07/2016 14:50:29
Quote Anchor link
Furio Scripting op 11/07/2016 14:34:26:
Ajax willen we inderdaad naartoe maar voor nu nog even via een simpele gehele refresh om de zoveel seconde/minuten.


Maar met een complete refresh is de te bewandelen weg veel lastiger: je weet niets meer van de toestand vooraf. Dat zul je dus op moeten slaan ($_SESSION ?)

Mat ajax heb je alles nog op je scherm staan, of in een javascript variabele. Daarmee kun je veel eenvoudiger controleren.

Je haalt bijvoorbeeld alleen het id op van de laatste order (2 bytes aan info) en je vergelijkt dat met de var in je geheugen van javascript, of met de inhoud van een willekeurige <input type=hidden>

Met een complete refresh kom je er ook wel, maar de weg is geheel anders. dus als je straks toch ajax wilt, waarom dan 2x iets compleet anders maken.
 
Furio Scripting

Furio Scripting

11/07/2016 14:59:52
Quote Anchor link
Ik heb het voor nu even via een sessie gedaan en werkt voor nu goed, vooral omdat ik weinig tot geen ervaring heb met Ajax maar hier zeker op korte termijn meer over wil leren gezien dit zich perfect leent voor realtime data. Bedankt voor de antwoorden!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.