草庐IT

【多线程】Thread类

全部标签

javascript - Javascript 或 jQuery 中的线程安全队列

我有许多异步AJAX调用,其结果将得到处理。处理发生的顺序无关紧要,但结果需要一次处理一个。所以我想简单地执行我的AJAX调用,它们都只是将结果放在一个队列中。然后应该在单个线程上处理该队列。这样,结果会尽快得到处理。执行此操作的最佳方法是什么?我正在使用jQuery,很高兴利用它为此提供的任何功能。 最佳答案 异步并不意味着“多线程”。考虑在处理第一个点击处理程序之前连续触发许多点击事件。一次只能处理一个Action,其他Action等待执行。像Javascript这样的事件驱动语言是在队列的基础上运行的。后台的Javascrip

javascript - JavaScript在浏览器中运行的单线程概念

下图摘自本书第3章SecretsoftheJavaScriptNinja乔恩·雷西格(JonResig)着。这里作者在讲解浏览器事件循环。这本书必须这样说:It’simportanttonotethatthebrowsermechanismthatputstheeventsontothequeueisexternaltothiseventloopmodel.Theprocessingnecessarytodeterminewheneventshaveoccurredandtopushthemontotheeventqueuedoesn’tparticipateinthethreadth

javascript - 在javascript中的另一个线程中运行代码

我想在页面上分离线程以防止gui卡住。为此,我正在运行一个函数,该函数将使用setTimeout将gui卡住在另一个线程中,但仍然卡住。代码和jsbin链接如下:$("#btn").on("click",function(){$("#div1").html(newDate());});$(document).ready(function(){setTimeout(function(){count();},1);});functioncount(){for(vari=0;i 最佳答案 即使您已通过setTimeout委托(delega

javascript设置间隔作为单独的线程运行?

我想使用计时器作为备用,以防我陷入无限循环。似乎设置间隔是执行此操作的正确方法。但是,它对我不起作用。根据我的研究,setInterval似乎应该在后台的单独线程中运行,但我没有看到。为什么会发生这种行为?我该如何解决这个问题?vartime=0;window.setInterval(function(){time++;},1000);while(true){//stuffdoneif(time>=5){break;}} 最佳答案 浏览器javascript在单线程中运行。因此,如果您执行的操作花费的时间太长-它会卡住浏览器。有关详

javascript - 如何在 Javascript 中执行线程

所以我有一个从服务器返回的大型JSON对象,然后从中构建数据表并将其显示在表单上。这通常需要几秒钟..所以我在想一个加载栏。我有加载栏背后的逻辑,但是构建hmtl数据的循环正在锁定浏览器,我无法调用我需要更新的元素。这是我执行此操作的函数:functionbuildDataTable(db_table,container_id){var$pb=$("");$(container_id).html($pb);$pb.progressbar({value:0});$.post("postlocation",{view:"all"},function(data){varheaders="";

javascript - 为什么JavaScript在常见的浏览器中没有得到自己的线程?

JavaScript不是多线程的还不够,显然JavaScript甚至没有它自己的,而是与其他负载共享一个线程。即使在大多数现代浏览器中,JavaScript通常也与绘画,更新样式和处理用户操作位于同一队列中。这是为什么?根据我的经验,如果JavaScript在其自己的线程上运行,并且仅由JS不阻止UI呈现或解放复杂或有限的消息队列优化样板(是的,您,Webworkers!)解放,则可以获得极大的用户体验。编写自己的内容,以确保UI真正落到实处。我有兴趣了解决定这种看似不幸的设计决策的动机,从软件体系结构的Angular来看,是否有令人信服的理由? 最佳答案

javascript - 由于附加了 DevTools,超时计时器终止服务工作线程被取消

操作系统:Windows10专业版网络包:1.14.0sw-precache-webpack-plugin:0.9.1sw-预缓存:5.0.0所以,我启动了我的站点,但有一段时间没有主动做任何事情,然后在devTools中生成了上述指定的错误消息。如果执行某些过程,则不会出现错误我的React代码如下:webpack.config.prod.jsvarpath=require('path');varwebpack=require('webpack');varSWPrecacheWebpackPlugin=require('sw-precache-webpack-plugin');mod

javascript - sencha 应用程序在 ui 线程上呈现速度变慢

我正在使用senchatouch2.2.1创建senchaweb应用程序。在我的应用程序中,我有一个屏幕,它由一个容器组成,我在其中添加了多个面板。单个面板由两个面板组成,顶部面板和内部面板。在页面初始化时,我调用ajaxapi来获取容器中每个项目顶部面板的数据列表。并在顶部面板上单击,我正在为该项目调用api以获取内部面板的数据。在api调用完成后,我将数据渲染到内部面板并使该面板可见。此代码对于单击顶部面板上容器中的所有项目都是相同的。顶部还有一个“expandAll”按钮,它将一个接一个地调用for循环中所有项目的api,并为每个内部面板呈现数据。首先,我调用一个API,然后在得

javascript - 从 Flash 调用的 JavaScript 代码在哪个线程上执行?

据我所知,所有JavaScript代码都是事件驱动的,并在单个浏览器线程上执行。但是,我有一些JavaScript函数是从位于同一页面上的SWF对象中调用的。这段代码是以与常规JS代码相同的方式运行的,还是在某个单独的Flash线程上运行的?如果它在一个单独的线程上,我可以使用setTimeout()让它在JS事件线程上运行吗?例如:functioncalledFromFlash(){setTimeout(doActualWork,0);}functiondoActualWork(){//blahblahblah} 最佳答案 它仍然

javascript - 如何显示由 setTimeout/setInterval 生成的每个正在运行的线程的列表

我想通过纯javascript或浏览器中的任何类型的控制台或其他任何方式来执行此操作。这可能吗?谢谢进一步说明:我想调试一个做动画的库。我想知道如果有多个动画对象,是否会创建多个计时器。 最佳答案 请注意,setTimeout()不会生成新线程。浏览器端脚本不仅是单线程的,而且JavaScript评估与页面呈现共享同一个单线程(WebWorkers分开)。进一步阅读:HowJavaScriptTimersWork通过约翰·雷西格您可能想自己构建一个计时器管理器:vartimerManager=(function(){vartimer