小编Avi*_*h R的帖子

DOM:为什么这是内存泄漏?

请考虑Mozilla Docs关于JavaScript内存泄漏的这句话:

function addHandler() {
    var el = document.getElementById('el');
    el.onclick = function() {
        this.style.backgroundColor = 'red';
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码将元素设置为在单击时变为红色.它还会造成内存泄漏.为什么?因为对el的引用无意中被捕获到为匿名内部函数创建的闭包中.这将在JavaScript对象(函数)和本机对象(el)之间创建循环引用.

请以简单明了的方式解释上述泄漏的原因,我没有得到确切的观点.

由于泄漏,网站/页面是否面临安全问题?我该如何避免它们?其他什么代码会导致内存泄漏?如何判断内存泄漏的时间?

我是内存泄漏主题的绝对新手.有人可以一步一步地为我澄清这些东西吗?还有人可以帮我澄清这句话"这会在JavaScript对象(函数)和本机对象(el)之间创建一个循环引用."

javascript internet-explorer garbage-collection memory-leaks circular-reference

30
推荐指数
2
解决办法
2996
查看次数

如何测试JavaScript缩小输出

我们最近升级到了一个新的JavaScript缩小库.

经过测试团队的大量质量保证工作后,我们发现新版本的minifier有一个问题,改变了代码块背后的意图和意义.

(生命教训:除非你确信你需要新版本,否则不要升级JS minifiers.)

minifier用于客户端JavaScript代码,重点强调DOM相关活动,而不是"业务逻辑".

minifier升级破坏了什么的简化示例:

function process(count)
{
     var value = ""; 
     value += count; //1. Two consecutive += statements
     value += count;
     count++;        //2. Some other statement
     return value;   //3. Return
}
Run Code Online (Sandbox Code Playgroud)

被错误地缩小为以下内容:

function process(n){var t="";return t+n+n,n++,t}
Run Code Online (Sandbox Code Playgroud)

虽然我们可以编写一些单元测试来捕捉潜在的一些问题,但鉴于JavaScript在DOM交互(数据输入等)上很重要,如果没有用户测试(非自动化),很难彻底测试.我们考虑使用像Esprima这样的JS到AST库,但鉴于可以对缩小代码进行更改的性质,它会产生太多的误报.

我们还考虑过尝试编写代表性测试,但这似乎是一项永无止境的任务(很可能会错过案例).

仅供参考:这是一个非常复杂的Web应用程序,包含数十万行JavaScript代码.

我们正在寻找一种测试缩小过程的方法,而不是"再次测试所有内容,彻底,重复".我们想对这个过程采用更严格/更科学的方法.

理想情况下,如果我们有更好的科学测试方法,我们可以尝试使用多个缩小器,而不必担心每个细节都会以新的细微方式破坏我们的代码.

更新:

我们的一个想法是:

  1. 用旧版本缩小
  2. 美化它
  3. 缩小新版本,
  4. 美化,和
  5. 视觉上差异.

这似乎是一个好主意,但差异是如此普遍,以至于差异工具几乎将每一行标记为不同.

javascript unit-testing

16
推荐指数
1
解决办法
2034
查看次数

query.list和query.iterate之间的区别

使用Query.list()和有Query.iterator()什么区别?

使用其中任何一个都有任何性能提升.我的意思是他们中的任何一个都实现了延迟加载

或者Query.iterator()最终与...相同query.list().iterate()

也是为什么Criteria.iterator()不仅有Criteria.list()

java hibernate

7
推荐指数
2
解决办法
1万
查看次数

根据设备大小在对话框和活动之间切换

在任何应用程序中,添加/编辑将相对较少的输入.我已经看到应用程序,尤其是日历,正在使用聪明的策略将这些显示为简单对话框,以便用户可能不会注意到设计形式中存在空白

如下所示 并排侧

我的问题是,如何实现这一目标?

android user-experience

2
推荐指数
1
解决办法
1661
查看次数

多次注射匕首

是否有可能在dagger中获取接口/类的实现列表?

我正在寻找像Ninject的Multi-Injection这样东西.

android dependency-injection dagger

2
推荐指数
1
解决办法
1520
查看次数

Android信号处理

我目前正在开发一个涉及在Android手机上使用EEG信号的项目.

我决定是否应该为Android创建自己的信号处理库,因为我似乎无法在网上找到任何信息处理库.

有没有人知道我可以使用的图书馆,还是更容易,更快地制作我自己的图书馆?

谢谢

android signal-processing

1
推荐指数
1
解决办法
2859
查看次数

Android中的websockets和同步适配器

我正在设计一个应用程序,用于从Web服务中获取一些数据,例如REST API,并将其显示给用户:

我正在考虑将同步适配器与Content Provider API结合使用:

  1. 同步适配器处理本地数据库和远程数据库之间的数据流。
  2. 内容提供商API会将数据加载到UI中。

我的问题是,如果远程应用程序具有服务器推送支持(使用Socket.IO左右),我应如何设计该应用程序以利用此功能?因为据我了解,SyncAdapter的运行时间由SyncManager决定。因此,我无法确保仅在服务器推送时才完成同步。我想知道是否有可能,即使没有在前台或后台运行应用程序也是如此。即,仅在运行同步适配器的情况下。

预先感谢您的任何答复。

PS:我才刚刚开始设计android应用,所以如果我错了,请原谅/纠正我。

跟进:

  1. 我对Cloud消息传递API(例如GCM)不感兴趣。如果用户愿意,我想将数据保密。

android application-design websocket android-syncadapter

1
推荐指数
1
解决办法
1184
查看次数