0

我的 html5 网络工作者遇到了问题。web worker postMessage() 的 JSON 对象到调用 worker 的文档级 javascript,它带有 onmessage() 函数。

显然,可以访问“iterationsjob”键,因为工人可以处理相关的数字值,但这似乎只在谷歌浏览器中有效,它仍然会引发错误:

18Uncaught TypeError: Cannot read property 'iterationsjob' of null

在 Firefox 中,网络工作者根本不工作,似乎也无法访问数字,我得到了成功的 ajax 调用,但它似乎绕过了日志记录步骤,并通过单独的 ajax 调用引发了另一个错误. 因此,我为工作人员编写了一种基本方法将 log() 消息返回到控制台,并从工作人员内部调用它们:

var iterations
//get iteration data from the server
p.ajax.post({
    url:'/getdataurl',
    dataType: "json",
    success: function(responseText){
        log("test");
        log("responseText is "+responseText);
        iterations = responseText.iterationsjob; 
        log("iterations is "+iterations);         
    }
});

我希望看到以下内容:

test
responseText is [object Object]
iterations is 3993547

相反,我看到:

test
responseText is [object Object]
iterations is 3993547
test
responseText is null
Uncaught TypeError: Cannot read property 'iterationsjob' of null

任何人都可以解释问题是什么以及如何解决它?编辑:我在这里上传了源代码的 zip 。在 Google App Engine 上运行。

谢谢!非常感谢任何帮助。

4

1 回答 1

0

啊,原来我需要在第二个ajax调用中添加一个空的成功回调函数。出于某种原因,如果没有定义,它默认调用第一个成功回调......

于 2011-12-15T21:05:19.473 回答