我可以像这样发送GoogleAnalytics事件并立即离开吗?_gaq.push(['_trackEvent','foobar']);window.location="/";如果GoogleAnalytics在调用时执行某种AJAX请求,那么无论我们是否停留在页面上,它都应该起作用。我担心的是,它有时似乎只是将内容放入数组中以供以后处理。我认为这只会在最初发生,当时GoogleAnalytics还没有时间进行初始化,但我想确定这一点。我用GA调试进行了测试,它似乎有效,但我不确定这是否意味着它总是取决于加载速度和其他因素。我可以这样做并且永远不会丢失任何事件吗?
我正在使用visualstudioJSLint插件来保持我的javascript井井有条,除了这个问题之外它似乎工作得很好。如果我输入x=(function(){}())然后把分号放在最后,Visualstudio更正为:x=(function(){}());然后JSLint提示JSLint:Unexpectedspacebetween'}'and'('.显然这可以通过移除空间来解决,但是visualstudio非常坚持将空间放回去。在函数内的任何地方放置一个分号,这是文件的大部分,将导致VS将空格放回。这开始变得烦人了。我尝试过使用visualstudioJavascript编辑器设
我使用Mustache生成一些HTML并使用insertAdjacentHTML将其放置在页面上。它显然已正确转换为DOM结构,因为之后我可以使用document.querySelector('.contentarea')调用获取它的句柄。但是,如果我尝试获取宽度或高度的像素值,它会一直返回'auto'。认为这可能只是getComputedStyle的问题,我尝试改用.getBoundingClientRect和.offsetWidth。两者都返回了0。如果我通过将调用放在setTimeout(function(){},1)中稍微延迟调用,它会起作用,但这对我的生产代码不切实际,因为它
在JS代码中使用命名IIFE来描述和分组相关代码的优缺点是什么?我一直在使用这种“模式”为我的更多过程代码提供结构,这些代码只在一个地方执行。例子(functionhideStuffOnInstantiaton(){$('oneThing').hide().removeClass();$('#somethign_else').slideUp();$('.foo').fadeOut();}());我发现这比两者更可取://hideStuffonInstantiaton$('oneThing').hide().removeClass();$('#somethign_else').slide
这是我当前的代码:constfn=parameter=>{//if,else...fn(X);};fn(0);现在,我不能使用thisapproach因为我需要使用参数调用该函数,并且它必须可以递归调用。如何重构上述箭头函数使其立即调用并递归调用? 最佳答案 JavaScript为递归函数提供了一个很好的解决方案:命名函数表达式。因此我建议使用它而不是箭头函数:(functionfn(parameter){//if,else...fn(x);})(0); 关于javascript-ES6
我意识到调用setState不会立即更新this.state,也不会立即调用render并刷新DOM。文档说setState()doesnotimmediatelymutatethis.statebutcreatesapendingstatetransition.Accessingthis.stateaftercallingthismethodcanpotentiallyreturntheexistingvalue.ThereisnoguaranteeofsynchronousoperationofcallstosetStateandcallsmaybebatchedforperfor
我继承了一堆代码,当我点击一些时,它们会做一些意想不到的事情。元素。该页面有很多Javascript,不清楚在按钮或其父元素上设置了哪些事件(如果有的话)。我试图找到执行开始的位置,以便我可以调试正在发生的事情。有没有办法让Firebug(或任何Javascript调试器)在执行任何javascript代码时中断?也许以某种方式以编程方式在每一行上设置一个断点?或者是否有其他方法可以找出按钮响应的事件(页面用户包括Prototype、jQuery和一些自定义Javascript。我知道。) 最佳答案 JustpressPausebu
StoyanStefanov在JavasScriptPatterns中说:“您需要一个立即函数来将所有代码包装在其本地范围内,而不是将任何变量泄漏到全局范围内”,第70页。这是他的例子(function(){vardays=['Sun','Mon'];//...//...alert(msg);}());但肯定是因为days被定义为var,所以它只是函数范围?立即函数的唯一好处是函数被立即调用。没有范围优势。正确吗? 最佳答案 这不是关于立即执行的函数与常规函数的对比;事实上,它几乎没有关系。立即调用包装函数的唯一目的是限定包装函数局
你怎么称呼这些模式?它们之间有什么区别?你什么时候使用它们?还有其他类似的模式吗?(function(){console.log(this);//window})();(functionx(){console.log(this);//window})();vary=(function(){console.log(this);//window})();varz=function(){console.log(this);//window}();编辑:我刚刚发现了另外两种看似多余的方法,通过在最后两种情况下命名函数...vara=(functionfoo(){console.log(this
示例Plunkr:https://plnkr.co/edit/NZwb3ol8CbZFtSc6Q9zm?p=preview我知道RxJS(5.0beta.4)有以下3种限制方法:auditTime()、throttleTime()和debounceTime()我正在寻找的行为是lodash默认情况下在throttle上执行的行为:>立即给我第一个值!>在连续的值上,保持给定延迟的值,然后发出最后出现的值>当throttledelay结束,回到状态(1)理论上这应该是这样的:inputObservable.do(()=>cancelPreviousRequest()).throttleT