web worker 的 self
- A selfobject, which is the global object representing the worker in this scope.
- 对self对象的译法,未知妥否。
// Call the invertImage method when this worker receives a message from the calling script.
// The ‘self’ object contains the only methods a web worker can access apart from those it
// defines and creates itself
//当此worker收到自来于发出调用的脚本的消息时,调用invertImage方法。“self”对象所包含的web worker所能访问的方法就只有那些由web worker自己本身进行定义和创建的方法。
self.addEventListener("message", invertImage, false); // Define a function to take an image and invert it, pixel by pixel, using its raw data
//定义一个函数,用作接收图像的原始数据,按像素来逐粒逐粒地实施反相操作。
function invertImage(e) { // The ‘data’ property of the ‘message’ event contains the pixel data passed from
// the calling script
//“message”事件的“data”属性包含着从发出调用的脚本所包含的像素数据。
var message = e.data, // The ‘data’ property of the message passed contains the raw image pixel data
//所发送过来的消息中的“data”属性包含着原始图像的像素数据。
imagePixels = message.data,
x = 0,
len = imagePixels.length; // Loop through each pixel, inverting its value within the original pixel data array.
// Pixel data is arranged in groups of 4 values, representing the red, green, blue, and
// opacity values of each visible screen pixel. We therefore loop through in jumps of 4
// on each iteration
//循环遍历每一粒像素,使原始像素数据的数组中所保存的值反相。像素数据按4个值进行分组,分别表示屏幕上所见像素的红、绿、蓝和透明度数值。因此,循环的每轮迭代的加数为4。
for (; x < len; x += 4) { // To invert a pixel’s value, subtract it from the maximum possible value, which is 255
//要对像素值进行反相,可以用最大的可能值(即255)进行相减。
imagePixels[x] = 255 - imagePixels[x];
imagePixels[x + 1] = 255 - imagePixels[x + 1];
imagePixels[x + 2] = 255 - imagePixels[x + 2];
} // Finally, post a message containing the updated pixel data back to the calling script
//最后,把包含着更新后的像素数据的消息发送回至发出调用的脚本。
self.postMessage(message);
}
web worker 的 self的更多相关文章
- JavaScript多线程之HTML5 Web Worker
		在博主的前些文章Promise的前世今生和妙用技巧和JavaScript单线程和浏览器事件循环简述中都曾提到了HTML5 Web Worker这一个概念.在JavaScript单线程和浏览器事件循环简 ... 
- Web Worker javascript多线程编程(一)
		什么是Web Worker? web worker 是运行在后台的 JavaScript,不占用浏览器自身线程,独立于其他脚本,可以提高应用的总体性能,并且提升用户体验. 一般来说Javascript ... 
- Web Worker javascript多线程编程(二)
		Web Worker javascript多线程编程(一)中提到有两种Web Worker:专用线程dedicated web worker,以及共享线程shared web worker.不过主要讲 ... 
- 过段时间逐步使用HTML5新增的web worker等内容
		想来快2017年了,2013年前的手机应该很少有人用了,以后逐渐使用HTML5新增的高级API吧. 先把web worker的内容再熟悉一下,因为微软虚拟学院的'面向有经验开发人员的 JavaScri ... 
- web Worker使js实现‘多线程’?
		大家都知道js是单线程的,在上一段js执行结束之前,后面的js绝对不会执行,那么为什么标题说js实现‘多线程’,虽然说加了引号,可是标题也不能乱写不是,可恶的标题党? 姑且抛开标题不说,先说我们经常会 ... 
- HTML5:web socket 和 web worker
		a:hover { cursor: pointer } 做练习遇到了一个选择题,是关于web worker的,问web worker会不会影响页面性能?补习功课之后,答案是不会影响. 查阅了相关资料学 ... 
- javascript 多线程Web Worker不引用外部js文件的方法
		最近在Android开发中 Webview通过调用JavascriptInterface的方式与App交互 在交互的过程中,有些App上的操作时间会比较长,Web中调用的话会造成程序假死的情况 于是想 ... 
- HTML5 Web Worker的使用
		Web Workers 是 HTML5 提供的一个javascript多线程解决方案,我们可以将一些大计算量的代码交由web Worker运行而不冻结用户界面. 一:如何使用Worker Web Wo ... 
- Web Worker 是什么鬼?
		前言 前端工程师们一定有过这样的体验,当一个页面加载了大量的 js 文件时,用户界面可能会短暂地"冻结".这很好理解,因为 js 是单线程的语言.我们再走的极端点,一段 js 中出 ... 
- Web Worker
		写在前面 众所周知,JavaScript是单线程的,JS和UI更新共享同一个进程的部分原因是它们之间互访频繁,但由于共享同一个进程也就会造成js代码在运行的时候用户点击界面元素而没有任何响应这样的情况 ... 
随机推荐
- Computer Vision_18_Image Stitching: Image Alignment and Stitching——2006
			此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ... 
- Const *ptr ptr
			1. const int *ptr = NULL; <=> int const *ptr = NULL; 1) 表示指向符号常量的指针变量,指针变量本身并非const所以可以指向其他变量. ... 
- 微信小程序开发(十三)安卓手机调用wx.getConnectedWifi API失败
			安卓手机调用wx.getConnectedWifi API失败,返回的错误码是12000.需要先startWifi 接口: wx.startWifi({ success(res) { console. ... 
- java学习笔记13-重写与重载
			重写 重写是子类对父类允许访问的方法实现过程进行重新编写,返回值和参数都不能变. 重写方法不能抛出新的检查异常和比被重写方法更加宽泛的异常 访问权限不能比被重写方法低 声明为final的方法不能被重写 ... 
- BZOJ 2281: [Sdoi2011]黑白棋 (Nim游戏+dp计数)
			题意 这题目有一点问题,应该是在n个格子里有k个棋子,k是偶数.从左到右一白一黑间隔出现.有两个人不妨叫做小白和小黑.两个人轮流操作,每个人可以选 1~d 枚自己颜色的棋子,如果是白色则只能向右移动, ... 
- 024_统计/var/log 有多少个文件,并显示这些文件名
			#!/bin/bash#使用 ls 递归显示所有,再判断是否为文件,如果是文件则计数器加 1cd /var/logsum=0for i in `ls -r *`do if [ -f $i ]; ... 
- 013_使用 user.txt 文件中的人员名单,在计算机中自动创建对应的账户并配置初始密码
			for i in `cat user.txt`do useradd $i echo "123456" | passwd --stdin $idone 
- decompiler
			.NET Reflector trial version http://www.red-gate.com/products/dotnet-development/reflector/ 破解版本 .N ... 
- chrome出现“由贵单位管理”原因及解决方法
			谷歌Google在声明里表示: 由贵单位管理指的是由设备或者账户管理员例如企业管理器可以用来强制更改谷歌浏览器配置的企业级策略.例如可以直接通过远程方式向所有受控用户添加书签,当管理员有进行这类操作时 ... 
- python 监听键盘事件pyHook
			#coding=utf- import pyHook import pythoncom # 监听到鼠标事件调用 def onMouseEvent(event): if(event.MessageNam ... 
