Na een succesvolle eerste post hoopte ik antwoord te vinden op een probleem waar ik al geruime tijd mee bezig ben. Ik ben bezig met een grafische Massive Multiplayer Online Roleplaying Game te maken geheel in JavaScript, PHP, (D)XHMTL en AJAX.
Alles verloopt goed op één probleem na..
Dit vormt de bottleneck van mijn hele project!

Visueel, heb ik me ingehouden tot een karakter die van tile naar tile 'verspringt'. Een raster van Div-blocks. Je karakter is een img die bij elke verplaatsing een nieuwe tile krijgt waar het plaatje in moet laden, alle andere tiles worden geleegd natuurlijk.. anders trek je een spoor van jezelf achter je aan.
het verplaatsen gaat over twee ajax objecten:
keymovement (input):
- keypress: kijken welke toets is aangeslagen
- op basis daarvan nieuwe locatie uitrekenen voor jouw karakter
- is er sprake van blokkades, teleports of een nieuwe map? (buiten beeld lopen) --> andere functies
- zo nee: nieuwe locatie opslaan in db
maprefresh (output):
- db request --> locatie spelers + naam (+richting die je opkijkt)
- inhoud van alle velden = "" (legen)
- image_naamvanspeler_kijkrichting.gif komt in tile id="locatie speler"
- herhaal elke 350ms (zonder einde)
Ik heb dit dus uitgewerkt en het werkt.. je kunt heen en weer lopen, tussen mappen lopen, je kunt tegen objecten oplopen waar je niet verder kunt etc. etc. Ik draai nu alles op localhost. Maar heb ook al geprobeerd op een public. (thuiscomputer als server, school als client, vrienden als client)
Het is probleem is dit:
Internet Explorer:
in het begin lijkt het redelijk soepel te gaan.. maar de mousepointer verandert na elke refresh even snel in een zandloper!!
Ik dacht dat het over was met de zandlopers in ajax.. appearently not.
Bovendien wordt mijn poppetje iedere keer trager. Mijn lichtbruine vermoeden is dat dit iets te maken heeft met cacheproblemen. Ik heb al eerder problemen gehad, die alleen internetexplorer had en firefox niet. IE wil het cache gebruiken en zo bleef mijn poppetje op de locatie staan, die IE in zijn cache ziet. Opgelost met php headers, ergens uit een forum gerukt.
Firefox:
Firefox handelt de boel redelijk netjes af. Op school zelfs precies zoals ik het wil.
Het poppetje reageert direct, hoeft niet na te denken, de pointer blijft zoals ik die heb ingesteld in css.. Alleen thuis (en op andere geteste machines) flikkeren de poppetjes.. datgeen wat iedere keer opnieuw er in wordt gezet met innerHTML, flikkert..Geldt ook voor het chatscherm. Dit ervaar ik als irritant. Is hier een workaround voor of, ben ik dom bezig met innerHTML? Moet ik firefox bewust laten cachen oid?
Graag jullie kennis als dit probleem bekend voorkomt, of als je er een filosofie over hebt! Als je code fragmenten wilt, zal ik direct reageren.

Visueel, heb ik me ingehouden tot een karakter die van tile naar tile 'verspringt'. Een raster van Div-blocks. Je karakter is een img die bij elke verplaatsing een nieuwe tile krijgt waar het plaatje in moet laden, alle andere tiles worden geleegd natuurlijk.. anders trek je een spoor van jezelf achter je aan.
het verplaatsen gaat over twee ajax objecten:
keymovement (input):
- keypress: kijken welke toets is aangeslagen
- op basis daarvan nieuwe locatie uitrekenen voor jouw karakter
- is er sprake van blokkades, teleports of een nieuwe map? (buiten beeld lopen) --> andere functies
- zo nee: nieuwe locatie opslaan in db
maprefresh (output):
- db request --> locatie spelers + naam (+richting die je opkijkt)
- inhoud van alle velden = "" (legen)
- image_naamvanspeler_kijkrichting.gif komt in tile id="locatie speler"
- herhaal elke 350ms (zonder einde)
Ik heb dit dus uitgewerkt en het werkt.. je kunt heen en weer lopen, tussen mappen lopen, je kunt tegen objecten oplopen waar je niet verder kunt etc. etc. Ik draai nu alles op localhost. Maar heb ook al geprobeerd op een public. (thuiscomputer als server, school als client, vrienden als client)
Het is probleem is dit:
Internet Explorer:
in het begin lijkt het redelijk soepel te gaan.. maar de mousepointer verandert na elke refresh even snel in een zandloper!!
Bovendien wordt mijn poppetje iedere keer trager. Mijn lichtbruine vermoeden is dat dit iets te maken heeft met cacheproblemen. Ik heb al eerder problemen gehad, die alleen internetexplorer had en firefox niet. IE wil het cache gebruiken en zo bleef mijn poppetje op de locatie staan, die IE in zijn cache ziet. Opgelost met php headers, ergens uit een forum gerukt.
Firefox:
Firefox handelt de boel redelijk netjes af. Op school zelfs precies zoals ik het wil.
Graag jullie kennis als dit probleem bekend voorkomt, of als je er een filosofie over hebt! Als je code fragmenten wilt, zal ik direct reageren.