javascript实现多线程 Concurrent.Thread.js

在这次我的项目中,因为前端要检测硬件加载并识别,再向后台请求发送数据,然后再返回的相应的配置文件!在这过程,要好时好几秒钟,严重影响体验效果,所以在网上靠看的方案,运用多线程去处理,这效果明显改善!

  在这同步检测过程,效果就如for循环一个很大数字(模仿复杂的逻辑代码运算),卡在哪里,导致不了其他的操作!

大家可以先不用这库,测试一下如下代码看看效果:

1 <script>
2     var btn = document.querySelector(‘.clickBtn‘);
3     btn.addEventListener(‘click‘, function () {
4         alert(‘我要多久才可以弹出来啊!!!!‘)
5     });
6     for (var i = 0; i < 99999; i++) {
7         console.log(i);
8     }
9 </script>

因为虽然在点击按钮在前面,可是在javascript的实现是放在javascript的异步事件队列中,因此这时候要等到 for 循环完才 执行 alert(1);

这次用这个库的效果:

 1  1 <script src="Concurrent.Thread.js"></script>
 2  2 <script>
 3  3     Concurrent.Thread.create(function () {
 4  4         var btn = document.querySelector(‘.clickBtn‘);
 5  5         btn.addEventListener(‘click‘, function () {
 6  6             alert(‘我要多久才可以弹出来啊!!!!‘)
 7  7         });
 8  8         for (var i = 0; i < 99999; i++) {
 9  9             console.log(i);
10 10         }
11 11     });
12 12 </script>

立刻点击按钮,马上又反应alert! 这就是多线程的么里所在......

这次项目,用到主要是这个库的提供的异步通讯:Concurrent.Thread提供了一个应用JavaScript 的异步通信方式实现的定制通信库,它被设计成当一个线程在等待服务器的响应时允许其它线程运行。这个通信库存于 Concurrent.Thread.Http。

参考的教程的用法如下:演示GET方式

< script type="text/javascript" src="Concurrent.Thread.js">< /script>< script type="text/x-script.multithreaded-js">  var req = Concurrent.Thread.Http.get(url, ["Accept", "*"]);  if (req.status == 200) {    alert(req.responseText);  } else {    alert(req.statusText);}< /script>

至于更详细的用法,大家可以在网上查看更多的资料,去了解这个库的魅力所在!

时间: 2024-10-05 19:54:46

javascript实现多线程 Concurrent.Thread.js的相关文章

【转】《高级前端3.6》JavaScript多线程——Concurrent.Thread.js, WebWork

原文链接:http://www.cnblogs.com/woodk/articles/5199536.html JavaScript多线程,在HTML5 WebWork没出现之前很多人都是用ConcurrentThread.js模拟多线程. 通常,我们也会用setInterval和setTimeout来模拟多线程. 多线程的概念介绍 浏览器事件触发线程,ajax,setTimeout,setInterval都会被放入最后面的一个程序池. Concurrent.Thread.js Concurre

JavaScript 编写多线程代码引用Concurrent.Thread.js(转)

这是一个很简单的功能实现: <script type="text/javascript" src="Concurrent.Thread.js"></script> <script type="text/javascript"> Concurrent.Thread.create(function(){ var i = 0; while ( 1 ) { document.body.innerHTML += i++

Concurrent.Thread.js

(function(){ if ( !this.Data || (typeof this.Data != 'object' && typeof this.Data != 'function') ) this.Data = new Object(); if ( this.Data.Stack === undefined ) this.Data.Stack = undefined; with ( function(){ with ( Data ) { return function () {

JavaScript 进阶(一)JS的&quot;多线程&quot;

这个系列的文章名为“JavaScript 进阶”,内容涉及JS中容易忽略但是很有用的,偏JS底层的,以及复杂项目中的JS的实践.主要来源于我几年的开发过程中遇到的问题.小弟第一次写博客,写的不好的地方请诸位斧正,觉得还有一些阅读价值的请帮忙分享下.这个“JavaScript 进阶”是一个系列文章,请大家鼓励鼓励,我尽快更新.另外,如果你有比较好的话题,也可以在下面评论,我们一起研究提高. JS是多线程的吗? 多线程编程相信大家都很熟悉,比如在界面开发中,如果一个事件的响应需要较长时间,那么一般做

JavaScript的多线程(工作线程)简介

首先声明,标题写成多线程主要目的是吸引眼球赚点击量,程序员一般看见多线程就会肾上腺素激升,你懂的... 其实更精确的定义是工作线程worker thread,本篇会详细为何起名叫工作线程worker thread,而非其他语言中的多线程multi thread,两者有些许差别. JavaScript原本是单线程的,一次只能处理一件事.如果处理数组占据大量时间,用户点击可能就没反应了,或页面刷新很慢,影响用户体验. HTML5之后可以新建一个工作线程来处理数组,确保之后的事情能顺利完成. 工作线程

【JavaScript】吃饱了撑的系列之JavaScript模拟多线程并发

前言 最近,明学是一个火热的话题,而我,却也想当那么一回明学家,那就是,把JavaScript和多线程并发这两个八竿子打不找的东西,给硬凑了起来,还写了一个并发库concurrent-thread-js.尴尬的是,当我发现其中的不合理之处,即这个东东的应用场景究竟是什么时,我发现我已经把代码写完了. ??注意! 本文中的线程指的都是用JS异步函数模拟的“假线程”,不是真正意义上的多线程,请不要误解?? github地址 https://github.com/penghuwan/concurren

javascript日期处理库-Datejs.js

原文:http://code.google.com/p/datejs/wiki/APIDocumentation javascript日期处理库-Datejs.js 当天时间 Date.today(); 比较两个时间大小,返回-1,0,1 var today = Date.today(); var past = Date.today().add(-6).days(); var future = Date.today().add(6).days(); Date.compare(today, fut

JavaScript提高:004:JS获取Gridview单元格时层级问题

使用javascript获取页面中元素的属性,或者对元素进行操作.这种使用是非常多的.不过对于获取那些在页面中单一的元素,诸如,页面上的某个文本框,下拉列表,按钮等可以直接用ID获取到的这种元素,用法自然简单.这里就不多说了,太简单了.一般比较复杂的是,获取元素中的元素,比如动态生成的那些元素.这里就拿表格中的元素为例吧.知道如何获取表格中的单元格内的元素了,其他的复杂元素也就不在话下了.下面举个简单的例子,获取GridView的单元格元素.平常使用比较多的也就是这种的.行中有个操作按钮,然后对

本地java代码和javascript进行交互(java和js互调)

在android的开发过程中,有很多时候需要用到本地java代码和javascript进行交互.android对交互进行了很好的封装,在开发中我们可以很简单的用java代码调用webview中的js,也可以用webview中的js来调用本地的java代码,这样我们可以实现很多原来做不了的功能,比如点击网页上的电话号码后,手机自动拨打电话,点击网页中的笑话,自动发送短信等. 废话不多说,这次教程的目标如下 android 中的java代码调用webview里面的js脚本 webview中的js脚本