相关疑难解决方法(0)

jQuery或javascript来查找页面的内存使用情况

有没有办法找出网页或我的jquery应用程序使用了多少内存?

这是我的情况:

我正在使用jquery前端和一个以JSON提供数据的restful后端来构建数据量很大的webapp.页面加载一次,然后一切都通过ajax发生.

UI为用户提供了在UI中创建多个选项卡的方法,每个选项卡可以包含大量数据.我正在考虑限制他们可以创建的标签数量,但他们认为只有在内存使用量超过某个阈值时才限制它们会很好.

根据答案,我想做一些澄清:

  • 我正在寻找运行时解决方案(不仅仅是开发人员工具),以便我的应用程序可以根据用户浏览器中的内存使用情况确定操作.
  • 计算DOM元素或文档大小可能是一个很好的估计,但它可能非常不准确,因为它不包括事件绑定,data(),插件和其他内存数据结构.

javascript memory jquery memory-management

94
推荐指数
4
解决办法
5万
查看次数

Immutable.js或Lazy.js执行捷径融合吗?

首先,让我为那些不认识的人定义什么是捷径融合.在JavaScript中考虑以下数组转换:

var a = [1,2,3,4,5].map(square).map(increment);

console.log(a);

function square(x) {
    return x * x;
}

function increment(x) {
    return x + 1;
}
Run Code Online (Sandbox Code Playgroud)

这里我们有一个数组,[1,2,3,4,5]其元素首先被平方,[1,4,9,16,25]然后递增[2,5,10,17,26].因此,虽然我们不需要中间数组[1,4,9,16,25],但我们仍然创建它.

捷径融合是一种优化技术,它可以通过将一些函数调用合并为一个来消除中间数据结构.例如,可以将快捷融合应用于上述代码以产生:

var a = [1,2,3,4,5].map(compose(square, increment));

console.log(a);

function square(x) {
    return x * x;
}

function increment(x) {
    return x + 1;
}

function compose(g, f) {
    return function (x) {
        return f(g(x));
    };
}
Run Code Online (Sandbox Code Playgroud)

如您所见,通过组合和函数将两个单独的map调用融合到一个map调用中.因此,不创建中间阵列.squareincrement


现在,我理解像Immutable.jsLazy.js这样的库在JavaScript中模仿延迟评估.延迟评估意味着仅在需要时计算结果. …

javascript lazy-evaluation immutable.js lazy.js

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