Javascript 游戏地图问题,使用jquery构建

Javascript 游戏地图问题,使用jquery构建,javascript,jquery,Javascript,Jquery,我正在使用jquery为浏览器游戏构建地图。基本上,它是一个网格,使用divs显示地图内容的背景图像。它使用较大的div,然后在您滚动到更靠近这些div的位置时,用较小的div填充较大的div(对于实际图像)。它使用点击拖动事件处理 现在一切都按计划进行得很好,我没有任何问题。我遇到的问题是,如果在地图进入下一个区域后单击并拖动地图(这样做是因为如果一直加载整个地图,地图的性能会非常低),加载数据显然需要一两秒钟,在此期间,我的单击并拖动事件不起作用,所以它最终感觉地图已经锁定了你 所以我想我要

我正在使用jquery为浏览器游戏构建地图。基本上,它是一个网格,使用divs显示地图内容的背景图像。它使用较大的div,然后在您滚动到更靠近这些div的位置时,用较小的div填充较大的div(对于实际图像)。它使用点击拖动事件处理

现在一切都按计划进行得很好,我没有任何问题。我遇到的问题是,如果在地图进入下一个区域后单击并拖动地图(这样做是因为如果一直加载整个地图,地图的性能会非常低),加载数据显然需要一两秒钟,在此期间,我的单击并拖动事件不起作用,所以它最终感觉地图已经锁定了你


所以我想我要寻找的是一种加载数据的方法,而你仍然可以点击并拖动,或者是一些关于填充网格样式地图的更好方法的建议。(我目前使用的是100x100(每平方米90像素)的地图,所以它就像90000px 90000px。任何帮助都会很好

在我看来,你的问题的基础是解决可能会锁定浏览器UI线程的大型操作的方法(使浏览器无响应).WebWorkers是一种解决方案,但它们尚未完全跨浏览器。请查看文档:


除此之外,您只需对工作进行分段。此外,在将数据发送到客户端之前,请查看服务器端代码,看看是否还有其他工作可以完成。如果您可以在服务器端完成,请这样做。这样可以减轻客户端的负担,从而提高感知性能。

在我看来,这是一种解决可能会锁定浏览器UI线程(使浏览器无响应)的大型操作的方法。WebWorkers是一种解决方案,但它们尚未完全跨浏览器。请查看文档:


除此之外,您只需对工作进行分段。此外,在将数据发送到客户端之前,请查看服务器端代码,看看是否还有其他工作可以完成。如果您可以在服务器端完成,请这样做。这样可以减轻客户端的负担,从而提高感知性能。

u调用函数加载数据?确保异步加载数据(通过Ajax)


此外,您还可以尝试将数据加载请求排队,并仅在停止/完成拖动后执行这些请求。

如何调用函数加载数据?请确保异步加载数据(通过Ajax)


另外,您可以尝试排队等待数据加载请求,并在停止/完成拖动后执行它们。

谢谢您的建议,值得注意的是,在chrome或firefox中,实际上没有锁定,但在ie8上,它有2-5秒的巨大标记。我刚刚花了两个小时来做的是从m结尾更改加载代码我们将代码拖到鼠标上方代码的末尾。这样你就可以浏览所有你想要的内容,但一旦你停止并取消单击,它就会加载,这似乎是一种更好的处理方式,只希望有一种方法可以加速此代码。但感谢你提供的信息,我将查看你发送给我的链接。谢谢你的建议,在chrome或firefox实际上没有锁定功能,但在ie8上它有2-5秒的巨大标记。我最近几个小时所做的就是将我的加载代码从鼠标拖动代码的末尾更改为鼠标向上代码的末尾。因此,你可以浏览你想要的所有内容,但一旦你停止并取消单击,它就会加载,这似乎是一种更好的处理方式,j我希望有一种方法可以加速这段代码。但是谢谢你提供的信息,我将要查看你发给我的链接。我所做的是在我将所有网格预加载到一个数组之前,所以在地图加载之前就已经完成了,显示数据所需的大量时间似乎是在添加所需的div。因此,每个它加载地图的下一部分的时间,比如说3部分90x90px的5x5,所以基本上75个div是90px x 90px。所以这似乎需要ie8大约2-5秒。我所做的是在我将所有网格预加载到一个数组之前,所以在地图加载之前就已经完成了,需要大量的时间显示数据的红色似乎是在添加所需的div。因此,每次它加载地图的下一部分时,其加载量为3部分,相当于90x90px的5x5,因此基本上是75个div,即90px x 90px。因此,似乎需要2-5秒的ie8。