小编The*_*ion的帖子

高效检测单页面应用中的 DOM 变化

我正在构建一个 JS 库,其中一个用例要求我触发 DOM 更改事件,特别是如果它是单页应用程序,例如: github 搜索栏 经过一些研究后我发现MutationObserver

// Dom change event listner
MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
var observer = new MutationObserver(function(mutations, observer) {
    // fired when a mutation occurs
    attachListners();
    // ...
});

observer.observe(documentAlias, {
  subtree: true,
  childList: true
  //...
});
Run Code Online (Sandbox Code Playgroud)

问题:我正在构建的库旨在插入任何网站,因此我无法控制 html 实现。我有点担心使用突变观察器可能会进入无限循环。在同一行看到很多堆栈溢出问题。

有没有其他/更好的方法?如何安全有效地检测 DOM 更新/更改?或者突变观察者是最好的选择

javascript dom-events

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

从头开始构建一个 javascript 网络分析工具

我对javascript相当陌生,我知道基础知识。我希望构建我自己的(从头开始)java 脚本库,就像 google analytics.js 一样,它将跟踪用户在网站上的行为。基本上我想收集像

  1. 点击数据
  2. 停留时间
  3. 页面点击等。

我花了很多时间试图找到网站/教程来让我开始这件事,但我一直在使用 google analytics.js 或一些私人工具。

我在找什么:

  1. 有什么好的起点/资源/网站可以帮助我构建这个js库
  2. 是否有包括后端在内的端到端系统架构的参考?
  3. 任何我可以直接使用的开源库?

我已经研究了 Chaoming 构建您自己的分析工具 Splunk BYO 分析的一些内容

javascript google-analytics web-analytics-tools web-analytics

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

在Ruby on Rails中将3个数组组合成Hash

我有3个数组:min,maxregions.我想为每个region对应的minmax值创建一个哈希.像这样的东西:

regions=["Region 1","Region 2",....]
min=["100","200",...]
max=["500","300",...]

#=> {"Region1"=>["100", "500"], "Region 2"=>["200", "300"], ...}
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

@min = params[:min]
@max = params[:max]
@regions = params[:regions]
Run Code Online (Sandbox Code Playgroud)

到目前为止我已经尝试了这个,但没有奏效:

@range_map = Hash[@regions.map{|r| [r, [@min.each.to_i,@max.each.to_i]]}]
Run Code Online (Sandbox Code Playgroud)

我想要的只是来自3个数组的散列,并且min和max被转换为整数.

ruby arrays ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

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