Javascript 当响应非常大时,jQueryAjax会冻结ui
当我使用jqueryajax函数时,响应非常大~1mb,在调用success函数之前,ui被冻结。我在使用JSON.parse函数和解析大量数据时遇到过这种情况。我相信这个函数是在请求返回时用来将内容格式化为JSON的。这是我正在使用的代码Javascript 当响应非常大时,jQueryAjax会冻结ui,javascript,json,performance,jquery,Javascript,Json,Performance,Jquery,当我使用jqueryajax函数时,响应非常大~1mb,在调用success函数之前,ui被冻结。我在使用JSON.parse函数和解析大量数据时遇到过这种情况。我相信这个函数是在请求返回时用来将内容格式化为JSON的。这是我正在使用的代码 $.ajax({ url: "/sessions/" + this.get("session_id") + "/get_sample_data", data: params, dataType: 'json',
$.ajax({
url: "/sessions/" + this.get("session_id") + "/get_sample_data",
data: params,
dataType: 'json',
type: "GET",
success: function (response) {
success(response);
}
});
是否有任何方法可以覆盖响应的代码,这样我就可以将解析分为多个部分,并希望最大限度地减少ui上的阻塞?或者有没有其他方法来解决这个问题。我使用的是chrome和chrome canary,这两款产品的效果都是一样的
提前感谢猜测是解析一个巨大的JSON响应导致了延迟。如果是这种情况,那么您有以下选项:
setTimeout()
上分块完成工作,以便UI在解析时保持活动状态。这将是一个合理的工作量。我假设您从一个现有的JSON解析器开始,然后必须对其进行修改以保存其状态,使其能够分块工作
如果可以适当地修改服务器接口,那么更改服务器接口以检索JSON片段可能是解决问题的更简单方法
对于如何处理大块大数据的一些备选方案,您可以看到问题出在哪里?在jQuery中解析JSON?或者你的代码解析JSON?1MB的JSON?1MB的纯文本???您试图在单个网页上显示什么?也许你应该过度思考你的问题@Amberlamps也许你的意思是“重新思考”?在加载JSON游戏地图或base64编码的精灵地图时,我通常会看到1MB或更多。这是合理的,但有时它们是多余的。1mb是未压缩的GPS数据。我想在这样高的数据水平上测试它,这样我就可以对它进行压力测试,以了解系统的功能。