【发布时间】:2011-09-02 01:47:57
【问题描述】:
我的 html5 网络工作者遇到了问题。 web worker postMessage() 是调用 worker 的文档级 javascript 的 JSON 对象,带有 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
谁能解释一下问题是什么以及如何解决? 编辑:我已经上传了源代码here 的压缩包。在 Google App Engine 上运行。
谢谢!非常感谢任何帮助。
【问题讨论】:
-
向我们展示一个独立的测试用例来证明问题,而不是散文。
-
哎呀,抱歉。自从那篇帖子以来我已经取得了一些进展,并且已经被隔离成两个不同的问题,所以我会投票删除那个帖子。
标签: javascript ajax json google-app-engine web-worker