HTML5 Worker之多线程学习笔记

Web Worker是html5中比较吸引人的一个特性,看了官方文档(MDN),得以下的学习笔记,实属班门弄斧,请高手拍砖赐教

一 .Web Worker特点:

 

  •  与C程序在WIN32下通过的CreateThread或者利用pthread库中的pthread_create创建的线程是一致的,都是 一个
  •  系统级的线程 
  •  只能在后台运行,不能操作DOM
  •  子线程可以访问navigator对象的userAgent, platform, appVersion及appName属性
  •  通过postMessage是完整的消息克隆,不是简单的地址引用.即消息体本身有两份完整的拷贝.
  •  子线程可以通过 全局函数调用 importScripts( )将其他脚本导入到当前执行环境,如 importScripts("foo.js", "bar.js");

 

二. Web Worker简单示例:

 

  •  主页代码 : main.js
 var worker = new Worker("thread.js");
 worker.addEventListener("message", function(event) {
         console.log( "call back from the thread");
         console.log( "thread message is:" + event.data );
 });
 worker.postMessage();

 

  • 线程js代码  thread.js
self.onmessage = function( event )
{
         self.postMessage( " I am from thread !");
}

 

     //注意: addEventListener与onmessage的区别与js中其他 onclick和addEventListener("click"....的区别是一致的

 

三. 创建Web Worker的注意事项及特例

 

  1.  线程指定的js文件可能会受同源策略限制,不同的浏览器的实现有不同(Firefox 10+ 允许跨域).
  2.  由于传递的数据是独立的拷贝,所以如果主进程和线程之间的函数调用的话,可能会失败.
  3.  消息传递内部实现为:先将消息序列化,再传递,接收端得到消息后则反之,先返序列化,然后再取数据,不过这些都是自动完成的.
  4.  Chrome 17以后对传递的消息有了一种新的机制,一次性引用传递.实现机理将 主进程或线程中创建的对象通过地址传递出去,但同时本身的消息内容会被立即销毁.
  5. 子线程还可以再创建子子线程(Chrome目前不支持--Webkit内核的目前都不支持,Firefox支持但子子线程必须与子线程同源)

 

四.  子线程的销毁

1.   通过父进程/线程 可以调用 worker.terminate()来强制结束一个子线程
     worker.terminate();


2.  子线程结束自己
     nsIWorkerScope.close();

五. 小结

    首先 html5中的worker确实带来的很多惊喜,通过合理的使用worker可以给用户带来一个可用的ui界面,让用记有更好的用户体验
    其次 web worker目前的支持也有一些不统一,在处理过程中会有一些麻烦

问题:

     如果通过子线程去跨域取数据, Jsonp是否行得通,是否有更好的办法来解决这个问题了呢?  (下回解决)
 

转载请保留以下内容:
author:mooring
sites: http://mooring.iteye.com
date:2012/02/23

 

下载方式:https://pan.quark.cn/s/b4d8292ba69a 在构建食品品牌的市场整合营销推广方案时,我们必须首先深入探究品牌的由来、顾客的感知以及市场环境。 此案例聚焦于一款名为“某饼干产品”的食品,该产品自1998年进入河南市场以来,经历了销售业绩的波动。 1999至2000年期间,其销售额取得了明显的上升,然而到了2001年则出现了下滑。 在先前的宣活动中,品牌主要借助大型互动活动如ROAD SHOW来吸引顾客,但收效甚微,这揭示了宣信息与顾客实际认同感之间的偏差。 通过市场环境剖析,我们了解到消费者对“3+2”苏打夹心饼干的印象是美味、时尚且充满活力,但同时亦存在口感腻、价位偏高、饼身坚硬等负面评价。 实际上,该产品可以塑造为兼具美味、深度与创新性的休闲食品,适宜在多种情境下分享。 这暗示着品牌需更精确地递产品特性,同时消解消费者的顾虑。 在策略制定上,我们可考虑将新产品与原有的3+2苏打夹心进行协同推广。 这种策略的长处在于能够借助既有产品的声誉和市场占有率,同时通过新产品的加入,刷新品牌形象,吸引更多元化的消费群体。 然而,这也可能引发一些难题,例如如何合理分配新旧产品间的资源,以及如何保障新产品的独特性和吸引力不被既有产品所掩盖。 为了提升推广成效,品牌可以实施以下举措:1. **定位修正**:基于消费者反馈,重新确立产品定位,突出其美味、创新与共享的特性,减少消费者感知的缺陷。 2. **创新宣**:宣信息应与消费者的实际体验相契合,运用更具魅力的创意手段,例如叙事式营销,让消费者体会到产品带来的愉悦和情感共鸣。 3. **渠道选择**:在目标消费者常去的场所开展活动,例如商业中心、影院或在线平台,以提高知名度和参与度。 4. **媒体联...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值