草庐IT

异步处理

全部标签

javascript - 动态绑定(bind)事件处理程序的最有效方法

问题:我需要动态地将任意数量的事件处理程序绑定(bind)到任意数量的元素(DOM节点、window、document)运行时,我需要能够在页面的生命周期内为动态创建(或销毁)的节点更新事件绑定(bind)。我可以看到三个选项来解决这个问题:I)window事件委托(delegate)II)每个节点直接绑定(bind)事件III)共同祖先的事件委托(delegate)(在运行时之前是未知的,并且可能需要在DOM更改时重新计算)最有效的方法是什么?一点背景我正在处理一组需要对用户事件(点击、滚动等)进行分析跟踪的页面,我希望能够在一堆页面上轻松配置这些事件处理程序,而无需编写脚本处理每个

javascript - $scope.$on ('$destroy' , ...) 的事件处理程序是否被销毁?

今天遇到了一个非常“深奥”的Angular问题,我找不到答案。来自$scope文档,您可以在"$destroy"上注册一个事件处理程序,它会在作用域销毁之前立即调用。这样,您就可以像这样注销事件处理程序:varderegister=$scope.$on('myCustomEvent',function(){//dosomecrazystuff});$scope.$on('$destroy',function(){deregister();});但是,$scope.$on('$destroy',...)必须创建自己的处理程序。它是自动销毁的,还是必须执行以下操作才能销毁它?vardere

javascript - Apollo 订阅 - 处理 WS 与 subscribeToMore 断开连接

我一直在寻找一种方法来处理我的带有Apollo订阅的React应用程序中的网络套接字断开连接,但还没有找到这样做的方法。我在apollo文档中看到的其他示例显示了以下捕获重新连接的方法:constwsClient=process.browser?newSubscriptionClient(WSendpoint,{reconnect:true,}):null;constwsLink=process.browser?newWebSocketLink(wsClient):null;if(process.browser){wsLink.subscriptionClient.on('reconn

javascript - 两个几乎相似的 while 循环之间的处理差异非常大

我正在编写一个函数,逐个像素地将图像绘制到Canvas元素。我注意到有一点,该函数的处理时间突然比以前更长了——特别是从338x338像素的Canvas到339x339像素的Canvas。将外观相似的函数放入jsfiddle中,我得到了相同的结果。处理338x338数组的while循环大约需要。6-7秒,而339x339的数组大约需要。24-25秒。这发生在Chrome上。在Firefox中,两者都需要大约。16秒。这是fiddle:http://jsfiddle.net/8pb89/5/代码如下所示:varary1=[];varary2=[];varmapData={};varcol

javascript - WebWorkers 和异步共享数据访问。在 Scala.js 中如何?

请考虑包含大型JavaScript的Scala.js类typedarray称为xArr。名为p(xArr)的进程使用xArr作为输入,但需要很长时间才能完成。为了避免脚本超时警告,p(xArr)在WebWorker中运行。回想一下主线程和WebWorker线程之间通信的这些限制:任一方向的通信都采用messagepassing的形式.消息数据必须符合JavaScript的要求structuredclonealgorithm.除非在可选的传输列表中指定,否则消息数据会被复制,而不是传输到/从主线程和工作线程。要传输消息数据而不是将其复制到/从工作线程,数据必须实现Transferable

javascript - webpack 中的异步 block 是什么?

这可能是一个虚拟问题,但在阅读split-chunks-plugindocumentation之后和thisarticleaboutcodesplitting,我仍然无法理解asyncblock指的是什么。split-chunks-plugindocumentation关于chunks属性的声明:[it]indicateswhichchunkswillbeselectedforoptimization.Ifastringisprovided,possiblevaluesareall,async,andinitial.Providingallcanbeparticularlypowerf

javascript - 处理 $.ajax 请求中的其他状态码

在下面的代码中,我正在处理状态代码200和401。如果我想将控制直接交给一个处理除200和401之外的所有代码的函数,我该怎么办?$.ajax({type:"POST",dataType:"json",data:POSTData,url:'http://localhost/api/user/authenticate',statusCode:{200:function(){alert("ok");},401:function(){alert("InvalidCredentials");}}}); 最佳答案 尝试这样的事情:$.ajax

javascript - 一个失败的测试会导致其他异步测试失败

我有一个非常基本的karma/jasmine设置,其中一个测试套件包含两个测试。我希望第一个测试失败,第二个测试通过。describe("Thesystem",function(){it("shouldfail",function(){expect(true).toBe(false);});it("shouldsucceed",function(done){setTimeout(function(){expect(1).toBe(1);done();},10);});});但是,当我在浏览器中运行这些测试并单击“调试”按钮打开KarmaDEBUGRUNNER时,我看到两个测试都失败了,

javascript - 在 Formik 中添加 react-bootstrap 警报以处理提交

我正在尝试向我的Formik表单添加一个react-bootstrap警报,以便handleSubmit向用户发出表单已提交的警报。我使用了react-bootstrap记录的Alert形式,但是我不得不更改最后一行,因为这似乎不起作用(错误说如果我使用react-bootstrap记录的形式,我没有导出任何东西警报。我的警报是:importReactfrom'react';import{Alert,Button,}from"react-bootstrap";classAlertDismissibleextendsReact.Component{constructor(props){s

javascript - AngularJS - 将第 3 方异步加载库包装为服务

我有一个异步加载到我的页面的第3方库,我想将它用作服务。如何将加载代码包装在Angular服务中?一般来说,最佳做法是什么?目前我的做法是这样的:angular.module('myAPIServices',[]).factory('MyAPI',function(){return{\\APIisdeclaredattheloadedscriptdoStuff:function(){$window.API.doStuff()}};});然后在Angular范围之外的页面上(function(){varjs=document.createElement('script');varloc=