Web Worker met Ajax

Een klein voorbeeld om dmv een Web Worker een pagina continue te laten updaten,

Dit kan gebruikt worden om continue het laatste nieuws weer te geven bv, of ervoor te zorgen dat altijd de laatste reacties worden weergegeven.

Dit is meer een voorbeeld dan een kant-en-klaar script.

(IE8 Ondersteund geen web workers, mogelijk dat het downloaden van de google chrome frame plugin ervoor zorgt dat dit wel werkt maar dat heb ik niet getest, IE gebruikers zullen maar gewoon F5 moeten drukken (er van uit gaande dat je de informatie vooraf al met PHP oid hebt geladen en de web worker alleen gebruikt om extra content toe te voegen)

Voorbeeld waarbij er continue de tijd word gevraagt:
http://www.johandam.com/html5_test/web_worker.html

(de seconden lijken raar te lopen, dit komt omdat er niet precies elke seconde een verzoek word gedaan)

Gesponsorde koppelingen

PHP script bestanden

  1. worker.js
  2. web_worker.html

 

12 reacties op 'Web Worker met Ajax'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Joren de Wit
Joren de Wit
2 jaar geleden
 
0 +1 -0 -1
Heb even code tags aan je scripts toegevoegd, nu zijn ze een stuk leesbaarder.

Is het verder misschien een idee om toch een werkend voorbeeldje te laten zien? Je zou simpelweg een PHP scriptje kunnen gebruiken dat de huidige tijd terug geeft, dan zou je elke seconde een update moeten zien...
Chris Horeweg
Chris Horeweg
2 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
var xmlhttp = new XMLHttpRequest();

Quote:
IE gebruikers zullen maar gewoon F5 moeten drukken


Misschien eerst verdiepen in AJAX-requests?
TJVB tvb
TJVB tvb
2 jaar geleden
 
0 +1 -0 -1
Wat is dit? En slechte versie van een basis Ajax script zoals die bij de meeste tutorials staan?
Sorry hoor, maar een opmerking als IE gebruikers zullen maar gewoon F5 moeten drukken is toch bullshit.
We negeren gewoon even het grootste gedeelte van de bezoekers?
Johan Dam
Johan Dam
2 jaar geleden
 
0 +1 -0 -1
http://www.w3schools.com/browsers/browsers_stats.asp
minder dan een derde van je bezoekers,

Dat ik zei dat IE gebruikers op F5 moesten drukken, kwam omdat ik ervan uit ging dat je met PHP al voor 'default' waarde ging zorgen, dit had ik erbij moeten zeggen.
Bij een F5 zou je dus de nieuwe content zien die direct door PHP geleverd werd.
En het is geen basis ajax script voorbeeld, het is een basis Web Worker voorbeeld.
Zal even een voorbeeldje in elkaar flansen en uploaden.

EDIT
Voorbeeld toegevoegd
Jelmer rrrr
Jelmer rrrr
2 jaar geleden
 
0 +1 -0 -1
Weegt het niet kunnen ondersteunen van oudere browsers (IE8 en ouder, verschillende telefoons) en het moeten laden van weer een extern script op tegen het niet-asynchroon hoeven gebruiken van XMLHttpRequest?

Leuk, maar niet een praktisch voorbeeld. Dit is niet hoe ik mensen Worker zou zien willen gebruiken. Ik had liever iets gezien waarbij je een Worker zou gebruiken omdat het uitrekenen veel tijd kost (als in, als je het in de main thread zou doen, zou de gebruiker het merken) Bijvoorbeeld localStorage doorzoeken o.i.d.
Johan Dam
Johan Dam
2 jaar geleden
 
0 +1 -0 -1
@jelmer, klopt. Web workers zijn veel meer geschikt om tijdrovende taken te verichten, ik had hier echter niet zo 1 2 3 een voorbeeld voor in gedachten en besloot iets simpels als voorbeeld te nemen.

Zolang je gebruik maakt van een fallback is het een toevoeging van een website.
Door eerst op de pagina zelf de content te verzorgen en een web worker te gebruiken om extra content toe te voegen, werkt alles nog prima voor mensen die IE gebruiken,
mensen met een andere moderne browser zal het nog beter werken.
P Lekensteyn
P Lekensteyn
2 jaar geleden
 
0 +1 -0 -1
Dit is een prima voorbeeld.
IE kan de pot op, je gaat mensen toch ook geen Windows 95 aanraden?
Web Workers kunnen zeer handig zijn, maar als je het gebruikt om bijvoorbeeld een blog te weergeven (waar bezoekers lezen en weer weg zijn) is het wat minder nuttig.
Web Workers hebben zeker een toekomst bij webapplicaties.
Aan jou de keus: gemak of ouderwets.
Pim -
Pim -
2 jaar geleden
 
0 +1 -0 -1
Heel veel mensen gebruiken IE, je moet wel.
Verder is het script nutteloos en slecht geschreven (gebruik intervallen!). En waar denk je dat de 1e A in Ajax voor staat...
P Lekensteyn
P Lekensteyn
2 jaar geleden
 
0 +1 -0 -1
Oke, AJAX mag je hieruit weglaten, maak er maar gerust HTTP request on background van.
Johan Dam
Johan Dam
2 jaar geleden
 
0 +1 -0 -1
Het klopt dat het Ajax gedeelte hierin nutteloos is. Een interval zou al helemaal nutteloos zijn, waarom zou je een web worker laten wachten?

De ajax zonder web worker met een interval aanroepen, kijk, dat is nuttig, maar dan heb je het over een ajax voorbeeld,
Michael Beers
Michael Beers
2 jaar geleden
 
0 +1 -0 -1
Uhmm hiervoor zijn er toch al frameworks die veel beter werken dan een eigen gemaakt scriptje... denk aan bijvoorbeeld Jquery en Mootools slechts 14kb laadtijd en werkt op meerdere browsers

Om te reageren heb je een account nodig en je moet ingelogd zijn.

  • Details
  • Johan Dam
    Door:
    Johan Dam
  • 2 jaar geleden
  • 1.487 x bekeken
Get Adobe Flash player