我是JavaScript和网络编程的新手,因此这可能是一个愚蠢的错误。不过,我在查找关于它的信息时遇到了问题。Chrome和Firefox之间的差异:重新加载运行Javascript游戏的页面
我正在用Javascript开发一款游戏,玩家可以在游戏中四处走动,并通过点击和移动他们的头像到不同的建筑物/对象。现在,我只需要更换页面位置,如果检测到碰撞,请致电this.gotoTimer = setTimeout(self.location = this.targetURL, 1000);
。
该页面在两个浏览器中链接正常。问题出在用户按下后退按钮时...在Chrome中,一切都重置;玩家产生的区域与我在代码中设置的区域相同,所有'linktargets'仍然有效。这是所需的行为。
在Firefox中,一旦后退按钮被按下并且页面重新加载,玩家将处于他/她最后的已知位置,并且他们访问的链接目标将不再链接......我最终可以通过访问停用所有链接目标他们并按下后退按钮。
从我已经能够研究的问题来看,Firefox对待缓存的方式似乎有问题,并且我已经能够找到的解决方法包括将随机数或时间附加到Javascript文件。这让我感到毛骨悚然。我也可能会离开。
所以我不知道两件事情:
- 这是问题的一个准确的假设,或者是有其他问题?
- 如果是这样,附加这些数字的最好方法是什么。整个概念对我来说似乎很不好...
另外:我知道(或者至少认为)这将是更好地实施内部将此作为某种类型的状态机,但我需要的概念工作尽可能快的证明。 (现在开发状态机所用的时间会更好地用于解决IE和其他浏览器问题。) –
您可能更适合在单个页面中实现您的游戏,而无需处理更改的URL和后退按钮。如果您想要提供后退按钮功能(可疑游戏),请查看[历史API](http://diveintohtml5.org/history.html)。 –
你必须更清楚你的“链接目标”是什么意思,这里没有足够的信息来知道你为什么不能再次访问它们 - 它们是什么? – nwellcome