jQuery parseJson完成后的反馈

时间:2014-03-17 12:02:10

标签: javascript jquery

我有以下代码:

var obj = jQuery.parseJSON('<? $data = file_get_contents('dev/cache/parsed.json'); $data = str_replace("'", "\'", $data); echo $data; ?>');

由于我正在使用此加载大约500kb的数据,我想在此加载完成时向网站访问者提供反馈。我的问题是.ready()将在加载此数据之后或之前触发吗?如果它之前触发(我怀疑只考虑DOM),那么我可以在我的JS末尾添加一些会创建某种警报的东西,表明obj已经完成浏览器的处理并且它没有继续执行警报事件?

我的首要问题是浏览器执行页面的方式以及某些事件触发的时间。从我的实现,我基本上需要的东西只有在浏览器读取了整个obj变量并且完成加载页面时才会激活。我不确定.ready是否会在这里工作。

干杯

2 个答案:

答案 0 :(得分:0)

你所拥有的代码不是异步的,它会阻止所有JS执行,直到完成。

只需将想要运行的代码放在它之后......之后。

答案 1 :(得分:0)

这是一个同步而非异步操作,因此没有向其添加回调的概念。与您在parseJson行之后手动触发回调没有什么不同。

换句话说,您的代码将在运行时阻止所有其他JS的执行。

选项:

  • 由WebWorker脚本完成。这些,在支持的情况下,使用单独的CPU线程运行,因此不会阻止主脚本的执行或妨碍用户与您的应用程序交互的能力

  • 而不是PHP将文件的内容直接转储到JS中,就像目前一样,将其加载到异步AJAX上。然后,您可以根据需要在加载后成功进行回调。