很多人在測試worker api的時候,總是會出現異常,根本測試不到效果。
在使用worker的時候有個必須注意的地方,就是單純的文本文件是實現不了worker的,你寫的實際代碼 必須部署到服務器(tomcat.jBoss等)才能運行worker api。
下面寫個簡單例子
js代碼test.JS(worker)
復制代碼代碼如下:
function messageHandler(e) {
postMessage("worker says: " + e.data + " too");
}
addEventListener("message", messageHandler, true);
postMessage("2222222222");
html代碼 index.Html
復制代碼代碼如下:
<!DOCTYPE Html>
<Html>
<head>
<title>index.Html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyWord3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/Html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.CSS">-->
</head>
<body>
<script type="text/Javascript">
if(typeof(Worker)!=="undefined"){
console.log("zhichi worke");
}else{
console.log("no support!");
}
function messageHandler(e){
console.log(e.data);
}
function errorHandler(e){
console.log(e.message, e);
}
var myWorker = new Worker("task.JS");
myWorker.addEventListener("message", messageHandler, true);
myWorker.addEventListener("error", errorHandler, true);
myWorker.postMessage("1 fangsong d");
</script>
</body>
</Html>
不是之後直接訪問index.Html頁面,然後在浏覽器的console面板中將看到worker發送的字符串(實際應用中一般使用JSon傳送)。