TOGOUTECH

optimization

全部标签

javascript - 异步加载的 Cufon 不会在 IE 中呈现

我正在创建一个使用Cufon的网站,由于大量的Javascript,页面重量特别重。因此,我正在尝试使用head.js(http://headjs.com/)异步加载脚本,如下所示:head.js("http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js",function(){head.js("/js/libs/cufon-yui.js",function(){head.js("/js/shared/Stag_Bold_700.font.js",function(){Cufon

javascript - 本地函数声明是否被缓存?

functionA(){functionB(){...}B();}函数B是在每次调用A时创建的,还是在它上面有一些缓存。不像本地化:functionA(){B();}functionB(){...}显着的性能提升?做这样的风格选择是否有效?(在这种情况下,B只是A的一个辅助函数。)或者第二个应该因为速度而受到青睐?为了可读性,应该使用还是避免使用这种样式?Benchmark.似乎FF4内联B用于局部情况,并消除了函数调用开销。其他浏览器呢? 最佳答案 在JS中声明一个内部函数可能具有在词法上绑定(bind)到外部函数的局部变量/参数

javascript/jquery - $(document).ready() 和脚本位置

我想知道$(document).ready()以及一般的脚本是如何工作的。假设我有位于页面底部的脚本(有人告诉我出于性能原因?)。例如:假设您有一个链接,您需要阻止它的默认操作(preventDefault())。如果脚本位于页面的底部,用户是否可以在浏览器知道不点击该链接之前看到该页面并单击该链接? 最佳答案 “head”部分中的脚本在脚本标记加载到浏览器的位置(即在主体之前)进行评估。当浏览器在解析页面时遇到文档末尾的脚本标记时,也会执行它们-因此在“文档准备就绪”事件之前。加载整个页面时会触发“文档就绪”事件-即当浏览器解析&

javascript - Webpack4 : Two vendor libraries based on entry points

所以,我一直在寻找,但我似乎找不到任何东西,除非我的搜索技巧最近变得更糟了。但是,我正在寻找的是能够根据入口点生成两个vendor包。例如,我有3个入口点:编辑公开授权当用户登录时,它将包含auth、public和editor包的变体。当用户注销时,它只会加载公共(public)包。这两种情况都会加载vendor包,但是当我们注销时,我不需要加载编辑器和auth中所需的模块,所以希望有一种方法可以将其拆分为vendor和vendor.auth,或类似的东西。我目前仅有的优化代码如下:optimization:{concatenateModules:true,splitChunks:{c

javascript - 如何让我的 setTimeout 函数以相同的速度运行?

前言:我有一个demooftheproblem在我的个人网站上(我希望这没问题。如果不行,我可以尝试在jsfiddle上进行设置)。我想让这个问题变得有趣一些,同时也试图了解javascript中的时间函数。我在超时时增加进度条的值。理想情况下(如果函数即时运行)它们应该以相同的速度填充,但在现实世界中,它们并非如此。代码是这样的:functionsetProgress(bar,myPer){bar.progressbar({value:myPer}).children('.ui-progressbar-value').html(myPer.toPrecision(3)

javascript - 如何在不影响性能的情况下向函数添加详细的日志记录代码?

性能对于我正在编写的某个类很重要。我考虑过这样调用一个函数:debug('Thisisadebugmessage,onlyvisiblewhendebuggingison');内容应该是这样的functiondebug(message){if(DEBUG)console.log(message);}所以我想知道:如果DEBUG变量永远不会改变,这是否足以让V8将其标记为“死代码”?编辑:与浏览器相比,我更担心Node中的性能,因此在缩小时删除代码是不够的。Edit2:我根据建议的解决方案做了一个JSPerf基准测试,它们非常令人惊讶:http://jsperf.com/

javascript - 为什么这段 JavaScript 代码经过 Node.js 优化后运行速度变慢了

我正在为ICPC创建一个解决方案使用JavaScript和Node.js的问题当我遇到一个有趣的问题时:在某些情况下,我的程序在同一数据集上的运行速度会慢两倍。我精简了它,直到我得到这个演示行为的最小示例:functionsolve(arr){consttotal=arr.reduce((a,c)=>a+c,0);constcount=arr.length;for(leti=0;i<total;i++){for(letj=0;j<count;j++){//calculatesomestuff}}}for(leti=0;i<10;i++){//generateso

javascript - 关于 JSLint,它对 for 循环的厌恶,以及尾调用优化

我注意到新版本的JSLint不喜欢某些形式的for循环。我发现这很奇怪,并开始寻找一些解释。在JsLint的helppage下,你可以找到这个:ThemostimportantnewfeatureofES6ispropertailcalls.Thishasnonewsyntax,sojsLintdoesn'tseeit.Butitmakesrecursionmuchmoreattractive,whichmakesloops,particularlyforloops,muchlessattractive.还有这个:jsLintdoesnotrecommenduseofthefo

javascript - 优化击倒/TKO - Alpha3

现代化进程中Knockout对于4.0版(现在位于monorepotko),我遇到了一些性能问题。在其他变化中,一些内部循环的东西已经转换为ES6类,这导致了一些主要的性能问题。我不想撤销这项工作,因为它为一些关键代码增加了相当多的清晰度,所以我想征求一些关于如何改进ES6代码的意见。我在这里设置了一些用于分析的简单示例:KnockoutAlpha2-349毫秒KnockoutAlpha3(prerelease)-622毫秒jsFiddles中的代码如下,它是许多绑定(bind)所经历的减速的原型(prototype)。HTML:<divid='x'><

javascript - 什么是javascript模板预编译?

我正在为我在javascript中的工作开发简单的模板引擎。它需要非常简单,所以我没有使用Handlebars、mustache或任何其他可用的强大模板引擎。我一直在阅读“PRECOMPILE”或“COMPILE”模板来提高性能。但我不确定那到底是什么意思。在我的工作中,我将模板html缓存在我的对象中,以避免每次都访问模板html。这个函数很简单,主要做了以下几件事_template=_template.replace(/\{(.+?)\}/g,function(token,match,number,txt){returnitem[match];});item是包含要替换的值的对象。