2012-06-19 3 views
3

웹 작업자가 지원합니까?웹 작업자 지원

  1. XMLHttpRequest를하고 전화가 다시
  2. 파일 업로드
  3. WebSocket을

나는 다른 사이트에서 매우 혼란 답을 발견했다.

도움 주셔서 감사합니다 ...

+0

당신이 지금 대답을 수락,하지만 당신은 더 여기 – buley

+0

야 pls는 필요하면 알려주세요, 웹 근로자에서 웹 소켓의 사용과 관련하여 저를 도와 줄 수있는 위해 임계 값에 도달했습니다 알고 .. 나는 XHR과 콜백으로 분명하다. – Nigilan

답변

2

의심스러운 경우 테스트 해보세요. 크롬의 나의 버전은 답이 제안 :

예.


<!doctype html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>Embedded Web Worker Test</title> 
<script type="text/js-worker"> 
    var xmlhttp = 'XMLHttpRequest: ' + (('function' === typeof XMLHttpRequest) ? ' YES' : ' NO') 
    var file_reader = 'FileReader: ' + (('function' === typeof FileReader) ? ' YES' : ' NO') 
    var websockets = 'Websockets: ' + (('function' === typeof WebSocket) ? ' YES' : ' NO')  
    var myVar = "Test results: " + xmlhttp + ", " + file_reader + ", " + websockets; 
</script> 
<script type="text/javascript"> 
    function log_worker_msg(worker_msg) { 
    var frag = document.createDocumentFragment(); 
    frag.appendChild(document.createTextNode(worker_msg)); 
    document.querySelector("#worker_log").appendChild(frag); 
    } 
</script> 
<script type="text/js-worker"> 
    self.onmessage = function (oEvent) { 
    self.postMessage(myVar); 
    }; 
</script> 
<script type="text/javascript"> 

    var oBuilder = new WebKitBlobBuilder() || new MozBlobBuilder(); 
    Array.prototype.forEach.call(document.querySelectorAll("script[type=\"text\/js-worker\"]"), function (oScript) { oBuilder.append(oScript.textContent); }); 

    var obj_url = window.webkitURL.createObjectURL(oBuilder.getBlob()) || window.URL.createObjectURL(oBuilder.getBlob()); 
    document.worker = new Worker(obj_url); 

    document.worker.onmessage = function (oEvent) { 
    log_worker_msg(oEvent.data); 
    }; 

    window.onload = function() { document.worker.postMessage(""); }; 
</script> 
</head> 
<body><div id="worker_log"></div></body> 
</html> 
+0

고맙습니다 ... 많이 감사드립니다 ... – Nigilan

+0

내 답변이 귀하의 필요에 맞는 경우 "수정"이라고 표시하십시오. 더 이상 내가 도울 수있는 것을 알려주십시오 – buley

+0

Firefox 13을 사용하고 있는데 다음과 같은 오류가 있습니다 : WebKitBlobBuilder가 정의되어 있지 않습니다 – Nigilan

0

귀하의 webworker 지원 테스트는 노동자 던지는 참조 오류가 발생 중대한 오류가 포함되어 있습니다. BlobBuilder는 더 이상 사용되지 않지만 Blob은 브라우저 와이드에서 사용하는 것이 바람직하지만 아직 널리 지원되지는 않습니다.

Blob support

나는 수정 된 소스는 여기 XMLHttpRequest를 파일 업로드 WebSocket을

에 대해 그것의 지원을 테스트 위해 내장 된 작업자 테스트를 수정했다. corrected source

function log_worker_msg(worker_msg) { 
    var frag = document.createDocumentFragment(); 
    frag.appendChild(document.createTextNode(worker_msg)); 
    document.querySelector("#worker_log").appendChild(frag); 
} 
var aFileParts = ["var xmlhttp = \'XMLHttpRequest: \' + ((\'function\' === typeof XMLHttpRequest) ? \' YES\' : \' NO\');var file_reader = 'FileReader: ' + ((\'function\' === typeof FileReader) ? \' YES\' : \' NO\');var websockets = \'Websockets: \' + ((\'function\' === typeof WebSocket) ? \' YES\' : \' NO\');var myVar = \"Test results: \" + xmlhttp + \", \" + file_reader + \", \" + websockets;self.onmessage=function(oEvent){self.postMessage(myVar)};"]; 
var oBuilder = new Blob(aFileParts, { "type" : "text\/javascript" }); 
var obj_url = window.webkitURL.createObjectURL(oBuilder) || window.URL.createObjectURL(oBuilder); 
document.worker = new Worker(obj_url); 
document.worker.onmessage = function (oEvent) { 
    log_worker_msg(oEvent.data); 
}; 
window.onload = function() { document.worker.postMessage(""); };