草庐IT

Java:微优化数组操作

全部标签

javascript - 如何针对后台多个异步请求导致的延迟优化基于 Web 的应用程序?

我正在设计一个基于瘦服务器客户端MVC架构的模块化RIA。目前,该应用程序仅完成了10%,因此合并设计更改还为时不晚。该应用程序的设计方式使其最初加载时占用空间非常小,并且根据用户执行的操作异步获取大量数据。这些数据可能包括存储在我的服务器中的数据以及来自第三方网络服务(包括社交网络和微博服务)的数据。但是我担心的是,是否有可能在后台运行的多个数据量大的ajax请求会使浏览器停止运行?我最近在一些社交内容聚合服务中观察到一些严重的延迟问题,在分析客户端代码后,我惊讶地发现客户端的应用程序占用空间非常小,在300KB以内。但是,当运行该应用程序时,浏览器(Firefox和IE)经常挂起并

javascript - javascript 中的动态 java 编译器

我正在尝试构建一个在线Java编辑器。我需要使我能够在单击提交时向用户报告编译错误(如果有的话)的功能。我很想知道是否有任何现成的javascript库可供我使用。 最佳答案 获取文本并在服务器端对其调用javac,以某种结构化的方式发回结果并在客户端显示 关于javascript-javascript中的动态java编译器,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1135

Javascript 分析代码操作(G. Analytics)

为了我的工作,我正在做一个关于GoogleAnalytics有效性的研究项目(主要是关于flippa上经过验证的报告)-->看看是否有可能完全伪造G.Analytics(一个简单的Yes不会削减它)!我修改了G.Analytics代码如下:var_gaq=_gaq||[];_gaq.push(['_setAccount','UA-19629541-5']);_gaq.push(['_setAllowHash',false]);_gaq.push(['b._setAccount','UA-19629541-5']);_gaq.push(['b._setAllowHash',true]);

javascript - 为什么使用 while 循环填充新数组的速度如此之快?

我正在考虑使用native方法创建包含默认值的数组的方法,结果是functionpushMap(length,fill){vara=[],b=[];a.length=length;b.push.apply(b,a);returnb.map(function(){returnfill;});}预计它比while循环慢2或3倍,因为native方法必须循环两次而while只循环一次,所以我比较了它jsperf反对functionwhileLengthNew(len,val){varrv=newArray(len);while(--len>=0){rv[len]=val;}returnrv;

javascript - 为什么操作地址加2?

我正在看JavascriptemulatorNES以尝试了解它的工作原理。关于thisline:addr=this.load(opaddr+2);操作码加2。然而,documentation(见附录E)我在读说:Zeropageaddressingusesasingleoperandwhichservesasapointertoanaddressinzeropage($0000-$00FF)wherethedatatobeoperatedoncanbefound.Byusingzeropageaddressing,onlyonebyteisneededfortheoperand,sot

javascript - 将数组转换为树

有人可以解释这段代码吗?我不明白“for”结构中的内容。vartree={}functionaddToTree(tree,array){for(vari=0,length=array.length;i 最佳答案 我扩展了for循环的主体并添加了一些注释,试图使事情更加明确。for(vari=0,length=array.length;i 关于javascript-将数组转换为树,我们在StackOverflow上找到一个类似的问题: https://stack

javascript - 使用javascript将一个对象数组展平为另一个对象数组

我在多种环境和语言中遇到过这个问题,我总是能够解决它,但我想最终找到一个合适的模式来处理这个问题。它来自连接SQL表。通常我会打两个电话,一个用于项目,一个用于评论,但我知道有一种方法可以在一个电话中完成所有操作,然后将结果拉平。我想做的是采用如下所示的数组:[{itemId:1,comments:{commentId:1}},{itemId:1,comments:{commentId:2}},{itemId:2,comments:{commentId:3}}]然后把它变成这样:[{itemId:1,comments:[{commentId:1},{commentId:2}]},{it

javascript - 从数组(切片)中提取 x 项,但如果到达末尾则从头继续

假设我有:vararray=[0,1,2,3,4,5,6,7,8,9]我定义:varitemsToExtract=5varstartindex=7vardirection="forward"我希望能够做到:array.someMethod(startindex,itemsToExtract,direction)得到[7,8,9,0,1]如果我将方向设置为“向后”(从右到左切片),我也希望它向后工作。我不是太懒,已经尝试了一些东西,请看这里:http://jsfiddle.net/MkNrr/如果有的话,我正在寻找“更整洁”的东西,还有这个方法的名称,这是一个已知问题吗?背景:我正在尝试

javascript - 如何在不使用 jQuery 重新计算布局的情况下操作元素

我有很多div元素需要重新计算它们的高度。这些div位于另一个id="content"的div中。我是这样使用jQuery的:$("#contentdiv").css("height","*="+Math.random());大约有1000个div是这样重新计算的。这样做需要一些时间,我知道这是因为布局为每个元素重新计算一次。这只需要几秒钟,但已经很多了。我之前得到了有关使用常规JavaScript文档片段的提示。我希望能够使用jQuery来执行此操作。有什么方法可以使用jQuery分离此div并在将它们写回之前在事件DOM之外对其进行操作,以便在我完成操作之前不会重新计算布局?

javascript - 在 javascript 中声明具有特定长度的数组有什么好处?

这个问题在这里已经有了答案:Howtoinitializeanarray'slengthinJavaScript?(20个答案)关闭8年前。在大多数javascript应用程序中,我通常像这样声明一个数组varx=[];但我在MDN上看到了大量采用这种方法的示例代码varx=newArray(10);对于V8/其他现代JS引擎,您是否看到了某种方式的真正好处?