草庐IT

代码执行

全部标签

javascript - 如何让一个javascript函数在dom就绪时只执行一次

我一次又一次地收到“嗨”提醒,如何让它执行一次并停止:functiondoSomething(){alert('hi');}$(function(){doSomething();}); 最佳答案 //Firedoncewhendocumentisready$(document).one('ready',function(){doSomething();});使用.one确保只执行一次而不是重复执行。可以放置几个document.ready事件监听器(如果您需要多次执行其他事件),只要您不过分,为了可读性。.one在您希望在首次打开网

RequireJS/AMD 模块中的 JavaScript 代码覆盖率

简短且看似愚蠢的问题,因为它如此简单而且您认为无处不在:有没有人获得任何类型的代码覆盖率以在RequireJS前端项目(非NodeJS)中工作?由于TDD方法在JS世界中的流行以及AMD开发的接管,这似乎是一个愚蠢的问题。我已经尝试了一百万种方法,但都缺乏。我的项目是一个带有Jasmine单元测试的Backbone项目:1)带有Coverage插件的JSTD。JSTD无法正确加载和检测AMD模块。如果我在单个js文件上运行JSTD(由RequireJS优化器组合),那么代码覆盖率会很好地工作,除了然后收集覆盖率并在整个文件上定义指标。太好了,这没用,因为它包含第3方库,而且因为我无法针

javascript - NodeJS, Async forEachSeries 执行顺序

只是想尝试使用NodeJS的异步模块。我有以下代码。vara1=[1,2,3,4,5,6,7,8];async.forEachSeries(a1,function(n1,callback){console.log(n1);vara2=[10,11,12,13,14];async.forEachSeries(a2,function(n2,callback){console.log(n1+""+n2);callback();});callback();});我想把上面代码的处理过程打印成这样111011111211311422102112122132143310311312313314..

javascript - 获取预编译源代码的 Karma 代码覆盖率

我使用Karma运行测试,使用webpack打包文件,使用babel进行es6->es5转换。我已经运行了测试并生成了代码覆盖率,但是代码覆盖率数字是针对转译后的源文件的。无论如何,是否可以获取原始源文件的代码覆盖率?我尝试使用sourcemap预处理器,但它似乎没有做任何事情。我是否需要将其添加到webpack配置中的某处?karma.conf.jsconfig.set({browsers:['Chrome'],//runinChromefiles:['src/**/*-test.js'],frameworks:['mocha'],//usethemochatestframework

javascript - 尝试优化我的代码以删除嵌套循环或使其更高效

我的一个friend取了一个从1到n的数字序列(其中n>0)在这个序列中,他选择了两个数字,a和b他说a和b的乘积应该等于数列中除a和b之外所有数的和给定一个数字n,你能告诉我他从序列中排除的数字吗?我从CodeWars找到了这个Kata的解决方案,但是当我运行它时它在编辑器中超时(12秒后);还有什么想法我应该如何进一步优化嵌套的for循环和/或删除它?functionremoveNb(n){varnArray=[];varsum=0;varanswersArray=[];for(leti=1;i.as-console-wrapper{max-height:100%!importan

javascript - Meteor 更新集合 - 未捕获错误 : Not permitted. 不受信任的代码可能仅按 ID 更新文档。 [403]

我是LearnignMeteor,遇到了这种情况,我正在关注关于tutsplus的Meteor教程。代码与视频中的代码完全相同,发生了集合更新,但在我的浏览器中显示了此错误:UncaughtError:不允许。不受信任的代码只能通过ID更新文档。[403]代码在这里:Template.person.events({'click':function(e,t){Session.set("edit-"+t.data._id,true);},'keypressinput':function(e,t){if(e.keyCode===13){vardocid=Session.get("edit-"

javascript - Chrome 坚持保留陈旧/旧的 javascript 代码,不会重新加载最新版本

我正在做一些非常简单的网络开发并使用chrome的调试器。当我修改源代码时,包含的javascript似乎永远不会更新。我可以删除整个文件的内容,但它仍然会加载陈旧代码(除非我重新启动chrome)。如果我删除文件的权限,它会注意到并且不会加载页面,但是在替换权限时旧代码又回来了。通过http和直接本地文件获取时都会发生这种情况。没有垃圾邮件重新加载或ctrl-F5作品。我试过清除和手动删除缓存,甚至在开发人员选项中设置不缓存选项。我不认为chrome处于本地修改模式,但我永远也说不准(这个“功能”即使有时不是很理想,也会有惊人的错误)。我在firefox中没有这个问题,但现在特别想测

javascript - 我可以在解决后强制 jQuery Deferred/Ajax 执行失败处理程序吗?

一个例子来说明我想做什么。这是我通常会做的:functionsuccess(data,status,jqxhr){if(data.error)returnfailure(jqxhr,status,data.error);//processdata}functionfailure(jqxhr,status,err){...}$.ajax(...).done(success).fail(failure)有什么办法,我可以像这样只用匿名函数来完成这个吗?$.ajax(...).done(function(data,status,jqxhr){if(data.error)//whatdoine

javascript - 将代码包装到闭包中是一个好习惯吗?

我是Angular的新手,我刚刚完成了来自CodeSchool的教程对于Angular的初学者。现在在第二个视频中,类(class)讲师说我们要将整个应用程序代码包装到一个闭包中。视频链接如下。他在00:30的某个地方说了这句话。现在为什么将我们的代码包装到闭包中是一个好习惯?Linktothevideo 最佳答案 闭包主要用于创建私有(private)作用域并避免变量泄漏到全局作用域中。 关于javascript-将代码包装到闭包中是一个好习惯吗?,我们在StackOverflow上找

javascript - 提前执行settimeout

我正在使用去抖动在使用settimeout超时后执行事件。我遇到的问题是,其他javascript事件期望这些事件同步发生。由于它们现在在超时后执行,我希望能够通过其他javascript事件过早地触发它们(这样那些需要它们的事件就不会失败)。任何人,如果我做类似的事情:timeout=setTimeout(function(){alert('hi');},10000);,我希望在10秒之前发生,我该怎么做?如果需要,解决方案可以涉及jquery。谢谢!编辑:仅访问超时对象就可以做到这一点吗? 最佳答案 所以,如果你做任何事情,你都