Web Worker Best Practices
来源:互联网 发布:盘古软件 编辑:程序博客网 时间:2024/05/16 08:48
使用Web Worker可以把一些比较计算量相对大的阻塞浏览器响应的计算放在单独的线程里计算。
请求优化
构造Worker的时候需要给定js的链接URL,worker内部请求js运行代码。假如worker有若干个,但使用同一个js文件,也仍然会请求js多次。听起来就不是个好的方法。
能够做到只请求一次worker js就最好了。那如何做到?
使用window.URL.createObjectURL可以构造一个对象的“本地”URL,XHR请求的时候并不是从服务器端请求,而是从当前页面的window对象中获得。所以接下来做的就是把worker js的内容首次从服务器端拿到后,创建这样的URL。详细的实现如下:
var workerJSUrl
var xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ var workerJSBlob = new Blob([xmlhttp.responseText], { type: "text/javascript" }); workerJSUrl = window.URL.createObjectURL(workerJSBlob)); } }; xmlhttp.open("GET",url,true); xmlhttp.send();
其中wokerJSUrl中保存的就是worker js的地址。
跨域请求
如果你向第三方开发者提供的JSAPI中使用到了worker,可能就会遇到跨域的问题,因为worker是不支持跨域的,即使你的js设置了允许跨域访问。
怎么办?使用上述的办法,js设置可以跨域访问后,然后保存为本地的链接,这样worker就可以使用了。
0 0
- Web Worker Best Practices
- Web Services Best Practices
- Web Server Security Best Practices
- 《Web 2.0 Principles and Best Practices》
- 10+ HTML Best practices for Web Developer
- Best Practices: Use of Web Application Firewalls
- Yahoo Web Performance Best Practices and Rules
- android-Best Practices for Web Apps
- Best Practices -
- Web Application Design Handbook: Best Practices for Web-Based Software
- Best Practices for Speeding Up Your Web Site
- Exceptional Performance : Best Practices for Speeding Up Your Web Site
- Best Practices for Speeding Up Your Web Site
- Best Practices for Speeding Up Your Web Site
- [转]Best Practices for Speeding Up Your Web Site
- Best Practices for Speeding Up Your Web Site
- Best Practices for Speeding Up Your Web Site
- Best Practices for Speeding Up Your Web Site
- Android Databinding 从入门到转行(四)自定义设置通知刷新回调
- Android 5.0及以上实现屏幕截图
- View.OnTouchListener 触碰事件
- TOJ 3990.I guess the gift is a bag! II(质因数、欧拉函数好题)
- 利用dim4j来保存用户信息
- Web Worker Best Practices
- You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE)
- 苹果笔记本电脑运行win系统时温度过高解决办法
- URL编码与解码
- 使用JAXB来完成Javabean与XML文件(字符串)之间的相互转换
- JDK环境变量配置
- 安卓开发基础:给控件设置监听事件的几种方法
- 我是一个路由器
- 封包和拆包