草庐IT

编译优化

全部标签

javascript - 如何优化 javascript/jquery 代码以加快其性能?

在我的一个网络项目中,我使用了大量的javascript/jQuery代码,这在浏览器(Windows7x64)上非常慢,尤其是在IE上。我只在主页上同时使用3个Ajax请求。在搜索页面上,我还使用了ajax请求,这些请求在滚动事件、任何“搜索标签”(简单anchor标签)点击事件等上触发,这通常会使数据加载非常慢。我使用jQuery插件,例如Anythingslider、jquerycoockies插件、Raty(评分插件)、Tipsuy、jQuerycoreUISelect、jScrollPane、鼠标滚轮等。所有这些第3方插件我都已缩小并合并到jquery.plugins.js中

javascript - 如何在编译时在 javascript 全局命名空间中定义一个 clojurescript 函数?

我正在寻找一种在编译时在Javascript全局命名空间中定义Clojurescript函数的方法。我所说的编译时是指我希望Clojurescript编译器输出:functionsome_fn(){}。我知道这不是惯用的,一切都应该驻留在命名空间中,但我所处的环境迫使我这样做。因此,理想情况下,类似于(defn^:globalsome-fn[])的工作方式类似于:export的工作方式,但忽略了namespace。我知道使用goog.global定义全局函数的运行时方法,例如(set!goog.global.someFunctionsome-clojure-fn)但这在我的环境中不起作

javascript - 如何禁用 V8 的优化编译器

我正在编写一个恒定时间的字符串比较函数(用于node.js),并且想为这个单一函数禁用V8的优化编译器;使用命令行标志是不可能的。我知道使用with{}(或try/catch)block将禁用优化编译器现在,但我担心这个“功能”(bug)将在未来的版本中修复。是否有一种不可变的(并记录在案的)方法来禁用V8的优化编译器?示例函数:functionconstantTimeStringCompare(a,b){//Byaddinga`with`blockhere,wedisablev8'soptimizingcompiler.//UsingObject.create(null)ensure

javascript - 在不转换异步函数的情况下编译 typescript

有没有办法只使用TypeScript编译器来删除类型注释,而不是转译异步函数?像{target:'esInfinite'}选项之类的东西?原因是:有些浏览器已经支持异步功能,所以我希望有一个不影响这些功能的构建目标。示例输入:asyncfunctionfoo(a:number):Promise{}示例输出:asyncfunctionfoo(a){} 最佳答案 在您的tsconfig.json中,将您的目标更改为ES2017,然后它将保留async/await。{"compilerOptions":{....."target":"ES

javascript - 为什么 CoffeeScript 会这样编译一个 for 循环?

这段CoffeeScript:foriin[1..10]console.logi编译为:for(i=_i=1;_i我不明白为什么它不直接使用i。有什么想法吗? 最佳答案 我对CoffeeScript不是很熟悉,但我猜这是为了防止在循环中修改i变量。例如:foriin[1..10]console.logii=7可能产生了这段代码for(i=1;i这显然会产生一个无限循环。然而,CoffeeScript的版本意味着会发生这种情况:for(i=_i=1;_i由于_i的存在,循环不再是无限的,以跟踪循环中的位置。

javascript - 从 AngularJS 获取已编译的 HTML

我在获取AngularJS中页面的已编译html时遇到问题。这是代码:JS:varapp=angular.module('main',[]);app.directive("compile",['$compile',function($compile){return{link:function(scope,elem,attr){varcompiledHTML=$compile(elem.contents())(scope);console.log(compiledHTML);varreturnString='';for(i=0;iHTML:{{3+4}}奇怪的是在第一个console.l

javascript - 创建闭包编译器外部

我正在使用jQuery插件和GoogleClosureCompiler。问题是当我将那个插件的URL添加到编译时,插件中有一个错误,编译失败。所以我想为那个插件创建一个extern。基本上,我只使用整个库中的1个对象和2个方法;像这样:varTheObject=$.plugin({...});varSomeVar=TheObject.someName.otherName(SomeString,{prop1:[...],onError:function(){...}});TheObject.SomeMethod();我查看了Google网站上的文档,但它是从一个令人困惑的“它是什么”的A

javascript - 优化巨大的 JSON 响应

我正在开发大数据客户端应用程序。服务器语言是Java。在Frontend中,我使用大量普通的JavaScript,但使用AngularJS作为MVC框架。问题处理大数据分析,一次单个RESTapi响应大约为1.5MB到3MB。处理这些数据以构建DOM是一件痛苦的事情。首先,加载JSON大约需要5到10秒。然后我构建UI(DOM)在构建DOM后,基于用户与数据的交互-我必须使用具有更新值的相同JSON发送/返回服务器。建议,我有哪些选项可以优化页面响应能力“我想到的几件事:一次将JSON分成1000个block,加载DOM后静默引入数据并更新UI。在服务器上对JSON进行GZIP压缩,然

javascript - 如何优化服务和加载 JavaScript 文件?

我希望对全局范围的Web应用程序有更多经验的人可以澄清我的一些问题、假设和可能的误解。让我们假设一个站点(大量的客户端/动态组件),该站点在全局拥有数十万用户,并且从一个位置(假设是中欧)提供源。如果应用程序依赖于流行的JavaScript库,是从GoogleCDN中获取它并将其编译成一个缩小的JS文件(连同所有特定于应用程序的JavaScript)还是从GoogleCDN单独加载它更好?阿塞蒂克VSheadjs:加载单个JS文件或并行加载所有脚本(按依赖顺序执行)是否更有意义?我的假设(请纠正我):将所有特定于应用程序/本地的JS代码编译到一个文件中,使用像谷歌这样的CDN来访问流行

javascript - Visual Studio 2017 不编译 typescript

我最近更新到VS2017,我使用的解决方案曾经在VS2015中完美运行。我在工具>文本编辑器>TS/JS>项目中启用了“保存时编译”功能,我正在确保我使用了正确的“代码生成”选项,但VS不会编译任何typescript文件。js输出文件已经存在,它是由VS2015生成的,当我保存ts文件时,底部栏显示“Output(s)generatedsuccessfully”消息,但js文件没有变化。请注意,该项目受源代码控制,但ts和js文件都已checkout以供编辑。我在网上看到类似的问题已通过最新的VS更新得到解决,我确信我的VS版本是最新的。有谁知道这是怎么回事吗?