webwork学习
学习了H5中的webworker
主机 > 程序 > 进程 > 线程 > 纤程
多进程(重) 多线程(轻)
开销 创建、销毁开销大 创建、销毁开销小
安全性 进程之间是隔离 线程之间是共享
资源 每个进程独立资源 同一个进程的所有线程共享资源
共享资源 麻烦 方便
编程难度 低(资源是独享的) 高(资源是共享的)
总结:
多进程:性能低、编写简单
多线程:性能高、编写复杂
Java、c 多进程/多线程
PHP 多进程
JS 多进程
--------------------------------------------------------------------------------------------------------
WebWorker——浏览器上实现的多进程
Web端:
主进程 UI进程
子进程(工作进程) 看不见的;只能完成计算、数据请求这些操作
优点:
1.充分利用资源(多个进程同时工作)
2.防止主进程卡住
缺点:
不能执行任何UI操作,子进程只能执行计算型任务
结论:WebWorker在工作中用的很少——Web中计算型任务就不多
下面写了个demo:一个加法计算器
在html文件中:
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <title></title>
6 <script>
7 window.onload=function (){
8 let oBtn=document.getElementById('btn1');
9 let oTxt1=document.getElementById('txt1');
10 let oTxt2=document.getElementById('txt2');
11
12 oBtn.onclick=function (){
13 let n1=parseInt(oTxt1.value);
14 let n2=parseInt(oTxt2.value);
15
16 //1.创建子进程
17 let w=new Worker('w1.js');
18
19 //2.发送
20 w.postMessage({n1, n2});
21
22 //6.接收结果
23 w.onmessage=function (ev){
24 alert(ev.data);
25 };
26 };
27 };
28 </script>
29 </head>
30 <body>
31 <input type="text" id="txt1">
32 <input type="text" id="txt2">
33 <input type="button" value="计算" id="btn1">
34 </body>
35 </html>
在w1.js文件中
1 //3.接收
2 this.onmessage=function (ev){
3 //console.log('我得到了:', ev.data);
4
5 //4.处理任务
6 let sum=ev.data.n1+ev.data.n2;
7
8 //5.返回
9 this.postMessage(sum);
10 };
webwork学习的更多相关文章
- Webwork 学习之路【06】Action 调用
一路走来,终于要开始 webwork 核心业务类的总结,webwork 通过对客户端传递的 web 参数重新包装,进行执行业务 Action 类,并反馈执行结果,本篇源码分析对应下图 WebWork ...
- Webwork 学习之路【03】核心类 ServletDispatcher 的初始化
1. Webwork 与 Xwork 搭建环境需要的的jar 为:webwork-core-1.0.jar,xwork-1.0.jar,搭建webwork 需要xwork 的jar呢?原因是这样的,W ...
- Webwork 学习之路【08】结合实战简析Controller 配置
虽然现在 MVC 框架层出不穷,但做为 Struts 前身的 webwork. 其经典程度不亚于贝利之于足球,双 11 之于淘宝特卖. 本篇将结合 webwork controller 配置文件 xw ...
- Webwork 学习之路【07】文件上传下载
Web上传和下载应该是很普遍的一个需求,无论是小型网站还是大并发访问的交易网站.WebWork 当然也提供了很友好的拦截器来实现对文件的上传,让我们可以专注与业务逻辑的设计和实现,在实现上传和下载时顺 ...
- Webwork 学习之路【05】请求跳转前 xwork.xml 的读取
个人理解 WebWork 与 Struts2 都是将xml配置文件作为 Controler 跳转的基本依据,WebWork 跳转 Action 前 xml 文件的读取依赖 xwork-1.0.jar, ...
- Webwork 学习之路【04】Configuration 详解
Webwork做为经典的Web MVC 框架,个人觉得源码中配置文件这部分代码的实现十分考究. 支持自定义自己的配置文件.自定义配置文件读取类.自定义国际化支持. 可以作为参考,单独引入到其他项目中, ...
- Webwork 学习之路【01】Webwork与 Struct 的前世今生
Struts 1是全世界第一个发布的MVC框架,它由Craig McClanahan在2001年发布,该框架一经推出,就得到了世界上Java Web开发者的拥护,经过长达6年时间的锤炼,Struts ...
- Webwork 学习笔记
1. 首先配置一个简单的webwork应用 核心jar: commons-logging.jarognl.jaroscore.jarvelocity-dep.jarwebwork-2.1.7.jarx ...
- Webwork 学习之路【02】前端OGNL试练
1.OGNL 出现的意义 在mvc中,数据是在各个层次之间进行流转是一个不争的事实.而这种流转,也就会面临一些困境,这些困境,是由于数据在不同世界中的表现形式不同而造成的: a. 数据在页面上是一个扁 ...
- 详解Webwork中Action 调用的方法
详解Webwork中Action 调用的方法 从三方面介绍webwork action调用相关知识: 1.Webwork 获取和包装 web 参数 2.这部分框架类关系 3.DefaultAction ...
随机推荐
- FFmpeg+SDL实时解码和渲染H264视频流
前言 之前实现了Android手机摄像头数据的TCP实时传输,今天接着聊聊,如何在PC端把接收到的H264视频流实时解码并渲染出来.这次使用的语言是C++,框架有FFmpeg和SDL2. 解码 解码部 ...
- Matlab GUI-Gamma选择工具
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path s ...
- ObjectInputStream_报错问题
报错: Exception in thread "main" java.io.StreamCorruptedException: invalid stream header: CE ...
- Codeforces Round #881 (Div. 3) A-F
比赛链接 A 代码 #include <bits/stdc++.h> using namespace std; using ll = long long; int a[57]; bool ...
- 使用docker构建可动态启动的FreeSWITCH实例
操作系统 :CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 Docker版本:23.0.6 使用docker打包FreeSWITCH可以极大简化部署环节,但针对高可用场景的 ...
- 关于 Task 简单梳理
〇.前言 Task 是微软在 .Net 4.0 时代推出来的,也是微软极力推荐的一种多线程的处理方式. 在 Task 之前有一个高效多线程操作累 ThreadPool,虽然线程池相对于 Thread, ...
- 巧用 bc 命令测试 Linux 主机的 CPU 性能
今天向公司申请了一台 Linux 主机,作为平时的开发环境.由于自己并不依赖远程开发(大多数情况下项目都可以本地开发.调试),于是只申请了 4C/8G 的低配机器. 突然好奇的是,这台机器的性能怎么样 ...
- linux内核编译基础知识储备 --- 过渡篇(四)
文章目录 一. 一种makefile中定义函数的方式 二. makefile之if函数 三. MAKE变量 四. $(quiet) 4.1 quiet = 空 与 quiet=quiet_ 的区别 4 ...
- zabbix 中 net.if.out 值来源及persecond的计算
使用脚本记录每秒的net.if.out值,与zabbix中的lastdata值做对比,发现对不上. #!/bin/bash dev=eth0 get_dev_net_speed() { dev_inf ...
- Django: 'block' tag with name 'header' appears more than once
错误原因 在同一文件中,重复引用标签多次 解决方案: 删掉重复的标签即可.