웹 작업자 처리 루틴
<!DOCTYPE html>
<html>
<head>
<title>webworker</title>
</head>
<body>
<input type="text" name="number" id="number"/>
<input type="submit" value="add" id="submit"/>
<div id="result"></div>
</body>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
<script src="js/script.js" type="text/javascript"></script>
</html>
script.js: 주 스레드
/**
* Created by keejun on 13-12-17.
*/
$(document).ready( function(){
$("#submit").click(function(){
var number=$("#number").val();
if(number){
var worker = new Worker("js/maths.js");
worker.postMessage(number);
worker.onmessage=function(e){
if(e.data!=""){
var span=document.createElement("span");
span.innerHTML= e.data;
var br=document.createElement("br");
document.getElementById("result").appendChild(span);
document.getElementById("result").appendChild(br);
}
else{
console.log("no datas!");
return false;
}
}
worker.onerror=function(e){
alert(e.message+":"+ e.lineNumber);
throw e;
}
}
else{
console.log("no numbers");
return false ;
}
}
)
}
)
주:script.js , maths.js,inner.js 파일 아래
maths.js: 먼저 모든 수의 합을 계산하고 데이터를 다른 하위 라인에 보내서 진일보한 처리를 합니다.
/**
* Created by keejun on 13-12-17.
*/
onmessage=function(event){
var data=event.data;
var sum =0;
for(var j= 0;j<data;j++){
sum+=j;
}
var worker = new Worker("js/inner.js");
var str;
worker.onmessage=function(event){
if(event.data==1){
str=1;
}
else{
str=0;
}
}
worker.postMessage(sum);
postMessage(str);
}
inner.js: 3 제거 여부 판단
/**
* Created by keejun on 13-12-17.
*/
onmessage=function(event){
var data=event.data;
var flag;
if(data%3==0){
flag=1;
}
else{
flag=0;
}
postMessage(flag);
}
테스트는 Firefox에서 통과할 수 있습니다. 크롬이 html5 웹 플러그인 웹worker에 버그가 존재하기 때문입니다.
관련 자료:https://code.google.com/p/chromium/issues/detail?id=31666
http://stackoverflow.com/questions/9259251/unable-to-create-web-worker-from-inside-webworker-in-chrome
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.