小编Jur*_*ion的帖子

拦截所有鼠标事件

我正在寻找一种方法来拦截网页上的所有鼠标事件(尤其是点击).

我的第一直觉是 $('body').click(....)

但是,如果为特定事件附加了任何其他处理程序,则不会捕获该事件.

把问题放在上下文中:我正在为我的网络应用程序编写一个"统计"模块.我们希望跟踪页面上的所有用户交互以进行调整.如果我们看到他们没有使用功能,我们将添加一个工具提示.

我有以下框架:

jQuery,Knockout和一个小框架"自制"

我想要的是一个用鼠标位置每次点击调用的函数.

html javascript jquery

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

使用System.Security.Cryptography计算SHA256哈希值

我正在将我的一个库移到Xamarin PLC.

官方文档声明支持System.Security.Cryptography命名空间,但它不在实际代码中.

我正在寻找一种计算没有这个命名空间的SHA256哈希的方法(并且在Windows命名空间中没有HashAlgorithmProvider.这种方法打破了Android和WP8.0的应用程序)

c# hash cryptography sha256 xamarin

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

淘汰观察和表演

我现在正在淘汰赛超过1年,但仍有一个问题我无法解决.这比实际问题更"语法糖"问题.代码简单是在TypeScript中,但它应该没问题,即使你从来没有听说过它.

让我解释.

假设我们有一个可观察数组(MyArray),其中每个元素都有"Value"可观察.我们想要创建一个计算的observable来获得所有的总和.

明显的方法是:

public SommeOne = ko.pureComputed((): number => {
    var res = 0;
    for (var i = 0; i < this.MyArray().length; i++) {
        res += this.MyArray()[i].Value();
    }
    return res;
});
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,每次迭代都会对this.MyArray()的调用进行两次计算.而"价值"一次.对于小型阵列(少于1000个元素),这是可以的,但对于更大的阵列而言则成为问题.所以,到目前为止我的解决方案是:

public SommeOne = ko.pureComputed((): number => {
    var res = 0;
    var array = this.MyArray();
    for (var i = 0; i < array.length; i++) {
        res += array[i].Value();
    }
    return res;
});
Run Code Online (Sandbox Code Playgroud)

此时我们只评估一次Array函数(仍为Value 1评估,但没关系,我们需要这个)并且它工作正常.

所以最后的问题是:

如何在不创建中间"数组"的情况下实现第二种解决方案?

对于一个数组来说这很好,但是如果你需要在两个数组之间进行减法,或者更复杂的事情,那么它就会快速失控.

javascript knockout.js typescript

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

标签 统计

javascript ×2

c# ×1

cryptography ×1

hash ×1

html ×1

jquery ×1

knockout.js ×1

sha256 ×1

typescript ×1

xamarin ×1