Web Worker进行数据交换

来源:互联网 发布:php redis watch 编辑:程序博客网 时间:2024/06/05 01:12

 demo_workers.js

var i=0;function timedCount(){i=i+1;postMessage(i);setTimeout("timedCount()",500);}timedCount();


Worker.html

<!DOCTYPE html><html><body><p>Count numbers: <output id="result"></output></p><button onclick="startWorker()">Start Worker</button><button onclick="stopWorker()">Stop Worker</button><br /><br /><script>var w;function startWorker(){if(typeof(Worker)!=="undefined"){  if(typeof(w)=="undefined")    {    w=new Worker("demo_workers.js");    }  w.onmessage = function (event) {    document.getElementById("result").innerHTML=event.data;  };}else{document.getElementById("result").innerHTML="Sorry, your browser does not support Web Workers...";}}function stopWorker(){w.terminate();}</script></body></html>

在实际访问时,出现

chrome javascript Uncaught SecurityError: An attempt was made to break through the security policy of the user agent

错误,原因是引用了本地的 demo_workers.js文件,在本地文件系统中访问文件时,chrome会限制同源策略
解决方案是:
  1. 把代码放到服务器上,通过网络访问
  2. 设置chrome,取消同源限制,方法有多种,首先要关闭已经打开的chrome浏览器
    1. 命令行进入到chrome.exe目录,通过命令行启动chrome并传递命令行参数:chrome --disable-web-security
    2. 第二种方法是选中chrome.exe右键:创建快捷方式,选中快捷方式,右键:属性,点击快捷方式选项卡,找到目标栏,在后面添加-args -disable-web-security 得到类似这样的字符串:"C:\Program Files\Google\Chrome\Application\chrome.exe" -args -disable-web-security 点击确定,以后从这个快捷方式打开的chrome就没有了同源限制

0 0
原创粉丝点击