小编Nil*_*lus的帖子

CSS将鼠标悬停在div上,但如果将鼠标悬停在他的孩子身上则不会

我看看这个问题是否已经得到解答,但找不到任何内容,只有关于我正在寻找的反向css规则的问题.

我有一个包含一个或多个孩子的div,我希望它在悬停时改变它的背景,但是如果将其中一个孩子徘徊则不会; 我需要:将悬停规则限制为纯元素,而不是它包含的后代.不是CSS中的父规则,并且:当鼠标经过父项及其子项时触发悬停:我发现自己没有想法,也许只有CSS才能实现这个结果.但问题是关于CSS,所以不需要JS或JQuery解决方案(我可以自己提供)

码:

HTML

    <div class="parent">Text of the parent
        <p class="class1">I do not need to trigger parent's background color change!</p>
    </div>
Run Code Online (Sandbox Code Playgroud)

CSS

    .parent {
       background: #ffffff;
    }
    .parent:hover {
       background: #aaaaff;
    }
    .class1 {
       margin: 10px;
    }
Run Code Online (Sandbox Code Playgroud)

css children hover

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

Javascript对象的函数参数性能

我读了一些关于当参数是对象时javascript函数参数传递如何工作的线程; 我注意到传递方法存在很多混淆,至少在术语中:传递引用,传递复制引用等等.这个问题不是关于如何命名这个传递方法,或者它如何在里面工作,而是以某种方式回答这个问题.

我有一些大的,非常大的对象,作为参数传递给函数; 我需要了解对象传递是否意味着对象的一些副本,因此内存消耗,计算工作量,内存泄漏风险与传递的对象的大小成正比,对于每个函数调用(我有很多调用),或者如果它以非尺寸比例的后果方式传递.

由于改变函数中对象的属性会改变外部作用域中的对象,但改变对象本身不会,我认为函数内部用于存储和"引用"参数的内存不依赖于它的大小,因为对象似乎不被复制,但我需要确定它.

对不起我的英语解释不好!

编辑:答案在某种程度上涉及对JS传递模式的洞察,但核心问题是实际案例的性能改进,因此任何理论信息都很有用,但所需的最重要信息是关于计算和内存消耗.

用例1(性能):假设我有一个访问其参数的两个成员的函数,并将一些结果写入第三个,在1000个不同的对象上执行1000次.问题是:如果对象由所涉及的仅3个属性组成,并且如果它具有其他100个属性,则hypotetical循环将花费几乎相同的时间?任何差异只会由参数复制开销或选择较大对象内的属性引起?实际测试可能在很大程度上取决于浏览器,所以我需要技术,通用的有效答案.

用例2:我有100MB对象,传递给一个函数.在执行期间,我的内存占用增加了100MB吗?因此,例如由错误控制的外壳引入的任何内存泄漏都更加危险.

javascript performance function object

9
推荐指数
2
解决办法
2763
查看次数

Javascript委派性能考虑因素

我使用委托机制查找了性能提升的线程.我说的是简单的javascript,没有jQuery或其他工具/库.

每个元素都会在DOM树中生成事件,并通过冒泡机制遍历整个事件.

委托避免为每个元素创建事件处理程序,但在单个处理程序中捕获更多事件.此外,停止冒泡,处理程序可以避免事件进一步传播,如果已经正确处理.因此,它将减少页面的资源消耗.

但是,如果没有停止冒泡,事件会产生并传播通过所有DOM树,因此使用委托或不使用委托在页面中存在相同的资源消耗.而且,如果委托的处理程序必须检查事件的来源,那么它也会更加消耗......

那么,使用委托的性能提升在哪里,除了编程更容易,更简单,更干净?

有一种方法可以避免某些事件产生,或者某些元素产生某些事件,从而节省了很多资源使用?例如,鼠标悬停的简单文本会在正常页面中生成许多无用的消息; 如果不处理该消息,是否可以防止在源处生成该消息?

javascript performance delegation

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

Datatable 客户端数据更改/重绘

我设置了一个数据表,它最初从服务器获取一些数据并表示它,但随后一切都留给了客户端。一些选项是:

serverSide: false,
sAjaxSource: mySource,
Run Code Online (Sandbox Code Playgroud)

我的 $.fn.DataTable.version 是 1.10.2。

然后我需要在客户端更改表下的 aaData,因为执行了一些数据处理。我需要更新 DT 以显示客户端更改的临时数据,而无需向服务器发送另一个请求(有两个原因:防止无用的流量和因为该数据正在被更改)。我正在寻找一种编辑底层 DT databean 的方法来编辑它,然后再次调用

myTable.draw();
Run Code Online (Sandbox Code Playgroud)

在我的桌子上,我获得了实时刷新,而无需向服务器发送另一个 get。

问题是,我可以访问DT数据数组吗,我可以编辑它吗?

如果可能,如何实现?

编辑:我需要向表提供完整的 bean 数组,就像它最初从服务器获取的一样,格式相同。所以单个行/单元格添加/编辑和客户端构建功能不适合我的情况,除非我手动循环所有对象。

javascript jquery client-side datatables

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

淘汰订阅洞察:检测是否处置

我在我的ko模型中有一个订阅管理,通过拦截它们并保存对它们的引用来保存任何订阅.

我然后处理它们,但是我有时需要理解子物质是否已被处理掉.成员Gb是订阅对象的布尔值,是活动 - 非活动标志吗?我看到,有时当我处理订阅时,它的Gb变得虚假,有时不会.我是否必须将此解释为处置失败?

一旦我处理订阅,订阅对象,是否已准备好进行垃圾回收?

编辑:我只需要了解订阅是否已经处理,如标题中所述.我以我所知道的唯一方式获得订阅,在声明时保存对它的引用:

var mySub = myObservable.subscribe(function(){/*do something*/});
Run Code Online (Sandbox Code Playgroud)

一段时间后我需要一种方法来确定mySub是否已经处理掉了.

function isDisposed(mySubscription) {
    // if is disposed return true else return false
}
Run Code Online (Sandbox Code Playgroud)

我需要在此基础上执行一些逻辑,不仅在没有处理的情况下处理它(或者我可以简单地再次调用dispose方法).是否有可能确定订阅处置状态?

subscriptions singlepage knockout.js

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

MDN 中的 JavaScript 接口

据我所知,JavaScript 是基于原型而不是类的 OOP 不考虑接口,而是依赖于鸭子类型。

然而,我经常可以在 MDN 在线文档中看到一些被描述为“接口”的对象,例如此处的存储:

https://developer.mozilla.org/en-US/docs/Web/API/Storage

实际上 window.Storage 存在并且是一个函数,但不是构造函数或工厂,并且在调用时失败。它没有像该页面中描述的那样的成员,而是 window.localStorage 。这一页

https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

将 window.Storage 指向为 window.localStorage 访问的对象。我知道 window.localStorage 是一个本机对象,但我想了解 window.Storage 的作用以及为什么 MDN 将其称为“接口”,在什么意义上:它是浏览器开发人员遵守的规范,而不是基于类的范式中预期的严格“接口”?

在此先感谢您,对于奇怪的问题感到抱歉。只是想加深我对 ES 的理解。

javascript interface

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