草庐IT

performance

全部标签

javascript - 如何编写一个将项目附加到 DOM 并延迟下一个 Tick 的函数?

我最近在网上发现了以下问题:WriteafunctionthattakesanobjectandappendsittotheDOM,makingitsothateventsarebuffereduntilthenexttick?Explainwhythisisuseful?这是我的回复:functionappendElement(element){setTimeout(function(){document.body.appendChild(element);},0);}为什么我将间隔设置为零?根据thisarticle,将超时设置为0,将事件延迟到下一个滴答:Theexecution

javascript - 有没有办法在不迭代的情况下将匹配元素的 z-index 增加 1?

我必须将所有span类.page的z-index增加1。可以有超过100个匹配元素(在任何情况下都不能超过150)。现在我正在遍历它们中的每一个并通过以下代码更改z-index。$('#mydivspan.page').each(function(){varzi=parseInt($(this).css('z-index'))+1;$(this).css('z-index',zi);});有没有更好的方法来处理它以获得更好的性能。我正在使用jQuery。 最佳答案 一些棘手的方法是,创建新样式varstyle=document.cr

javascript - window.performance.now() 在 Safari 9 中未定义

我在Safari9中使用window.performance.now()时遇到问题。我的操作系统是MacbookProMid2010中的OSXMavericks。Apple为OSXYosemite和Mavericks用户发布了Safari9:http://www.macrumors.com/2015/09/30/apple-releases-safari-9-for-yosemite-users/caniuse.com/#search=performance说在Safari8和9中支持window.performance.now():但我今天才从Safari7更新到Safari9并且非

javascript - let vs var 在 nodejs 和 chrome 中的性能

当我在chrome和nodejs中测试以下代码时,我得到以下信息:Chrome:forloopwithVAR:24.058msforloopwithLET:8.402msNodeJS:forloopwithVAR:4.329msforloopwithLET:8.727ms据我了解,由于block作用域,LET在chrome中更快。但是有人可以帮我理解为什么它在NodeJS中是相反的吗?还是我遗漏了什么?"usestrict";console.time("forloopwithVAR");for(vari=0;iPS:不确定这是否不是测试性能的理想方式。 最佳

javascript - Angular2 提前 (AoT) 编译如何工作?

Angular2带有称为提前(AoT)的新功能。但是看了一番,还是不能真正理解。它是如何工作的?它将如何带来更好的性能?它与JIT有何不同?谢谢。 最佳答案 Angular在模块、指令和管道的View和装饰器中使用声明式绑定(bind),这些需要由浏览器中的JS解释以执行它们的预期目的。离线模板编译器用生成的静态代码替换声明式绑定(bind)和装饰器。这使得Angular2组件实例化和初始化更快,因为JS要做的工作更少。在将应用程序提供给客户端之前,组件的“编译”已经完成。如果您不使用其他在运行时需要它的功能,则可以省略platfo

javascript - 局部变量与参数

functiondoIt(param){varlocalVar=param;//dolotsofstuffwithlocalVar}functiondoIt(param){//dolotsofstuffwithparam}上面的代码在效率上有什么区别吗? 最佳答案 没有区别。参数只是一个局部变量,它在调用时使用传递的参数进行初始化。但是,如果您要更改变量的值,通常认为保持参数变量不变是一种很好的做法,只是出于可读性和可维护性的原因。 关于javascript-局部变量与参数,我们在Sta

javascript - Javascript 中的字符串连接效率有多低?

比如varmyName='Bob';myName+='isagoodname';对于这种长时间的操作,有没有更好的办法呢?也许使用StringBuffer类型的结构?谢谢!:) 最佳答案 “更好”的方法是:varnameparts=['Bob'];nameparts.push('isagoodname');...nameparts.join('');然而,大多数现代JavaScript实现现在都可以检测到朴素的串联,并且在许多情况下可以将其优化掉,因为很多人(唉)都以这种方式编写代码。所以在实践中,“好”方法今天不会像以前那样快。

javascript - 在 JavaScript 中处理点/小向量的最有效方法是什么?

目前我正在创建一个基于Web的(=JavaScript)应用程序,它使用了很多“点”(=小的、固定大小的向量)。基本上有两种明显的表示方式:varpointA=[xValue,yValue];和varpointB={x:xValue,y:yValue};所以稍微翻译一下我的观点会是这样的:varpointAtrans=[pointA[0]+3,pointA[1]+4];varpointBtrans={x:pointB.x+3,pointB.y+4};从程序员的Angular来看,两者都很容易处理(对象变体更具可读性,尤其是因为我主要处理2D数据,很少处理3D,几乎不处理4D-但不会更多

javascript - 为什么原型(prototype)函数比默认声明的函数慢 40 倍?

我玩过jsperf.com,发现原型(prototype)函数比“默认”声明的函数慢40倍。String.prototype.contains=function(s){return!!~this.indexOf(s)}=220Kops/s对比functionisContains(str,s){return!!~str.indexOf(s)}=8.5KK操作/秒Here'sajsperftestcase附言我知道原型(prototype)修改不是最好的情况,可以命名为“猴子修补”:) 最佳答案 我认为它很慢,因为字符串基元每次调用一个

javascript - 使用 Modernizr 加载 HTML5 Shiv 的性能

我的站点使用Modernizr并需要HTML5Shiv和PrintShiv。不使用Modernizr加载这些shivs而是通过IE条件加载它们是否有任何性能优势?显然使用Modernizr更干净,但我更关注性能。 最佳答案 我自己很好奇,所以我设置了一些测试页面。如果您的站点只需要HTML5Shiv和来自modernizr的PrintShiv,那么使用IE条件仅加载html5shiv-printshiv.js将比始终为所有其他浏览器加载modernizr(ltIE9)执行得更好。因此,在您的情况下,您可能应该停止使用moderniz