将初始游戏数据(JSON)加载到Javascript中

时间:2013-08-01 19:45:26

标签: javascript json loading

我搜索了两天,但没有找到答案。我需要在JavaScript游戏启动时加载几个JSON数据文件。在游戏启动和初始化(基于此数据)之前,游戏无法正常运行,用户也无法做任何事情,因此不需要异步(允许用户在页面上看到空白元素会降低用户体验) 。我一次又一次地读到,使用jQuery.ajax请求的“async:false”设置是非常不满意的。在JavaScript中加载初始数据文件的适当方法是什么?我正在谈论的例子:几乎任何Facebook上的游戏都有一个带有装备的“加载”屏幕或像TribeZ这样的游戏,其中包含“请等待......提取资源”消息。

3 个答案:

答案 0 :(得分:2)

你刚回答了自己的问题。发出Loading - please wait消息,获取您的数据,然后隐藏消息。设置UI的其余部分以使用合理的默认值,直到加载数据(或完全隐藏它们)。

答案 1 :(得分:1)

你不想这样做。同步XHR是一种蠕虫;与它相关的错误不断涌现,对它的支持只会变得更糟,因为实施者想要摆脱它。同步XHR阻止该选项卡中发生的所有(使用转换的CSS动画除外)

我在这里吹嘘自己的号角,但我为a JS preloader library做了完全相同的用例(预加载游戏资产)。还有一些主要公司支持CreateJS' PreloadJS

答案 2 :(得分:0)

我认为您要找的是complete

$.ajax事件

这将允许您将一组函数链接在一起,但其他方法仍然会在成功时异步触发,而其他方法在完成之前不会触发。


  

<强>完整

     

类型:Function(jqXHR jqXHR,String textStatus)函数   在请求完成时调用(成功和错误回调之后)   执行)。该函数传递了两个参数:jqXHR(in   jQuery 1.4.x,XMLHTTPRequest)对象和一个字符串分类   请求的状态(“成功”,“未修改”,“错误”,“超时”,   “abort”,或“parsererror”)。 从jQuery 1.5开始,完整的设置即可   接受一系列功能。每个函数将依次调用。

     

这是一个Ajax事件。

Source