小编Nik*_*des的帖子

更改SVG路径的宽度/高度

如何在SVG编辑中更改所选路径的宽度/高度.

  • 到目前为止我只有这个:

    svgCanvas.changeSelectedAttribute("height", "499");

上面的命令对路径完全没有影响.调整边界框的大小只调整边界框的大小,但调整路径本身的大小.

javascript svg svg-edit

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

在高阶函数中传递其他参数

考虑这个例子:

const samples = ["foo", "bar"];

const excludeFoos = function(item) {
  return item !== "foo";
}

const foos = samples.filter(excludeFoos);
Run Code Online (Sandbox Code Playgroud)

如何传递其他参数excludeFoos

例如:

const samples = ["foo", "bar"];

const exclude = function(item, str) {
  return item !== str;
}

// obviously won't work but you get the point
const foos = samples.filter(exclude("foo"));
console.log(foos); // ["bar"]
Run Code Online (Sandbox Code Playgroud)

javascript functional-programming ecmascript-6

10
推荐指数
2
解决办法
3664
查看次数

在knex中批量更新

我想使用Knex.js执行批量更新

例如:

'UPDATE foo SET [theValues] WHERE idFoo = 1'
'UPDATE foo SET [theValues] WHERE idFoo = 2'
Run Code Online (Sandbox Code Playgroud)

值:

{ name: "FooName1", checked: true } // to `idFoo = 1`
{ name: "FooName2", checked: false } // to `idFoo = 2`
Run Code Online (Sandbox Code Playgroud)

我之前使用的是node-mysql,它允许多个语句.使用它时我只是构建了一个多语句查询字符串,只需在一次运行中通过线路发送.

我不确定如何用Knex实现同样的目标.我可以batchInsert看作我可以使用的API方法,但就任何batchUpdate问题而言都没有.

注意:

  • 我可以进行异步迭代并分别更新每一行.这是不好的原因,这意味着从服务器到数据库将会有很多往返

  • 我可以使用raw()Knex 的东西,可能做类似于我对node-mysql的操作.然而,这破坏了作为DB抽象层的整个knex目的(它引入了强大的DB耦合)

所以我想用"knex-y"来做这件事.

欢迎任何想法.

javascript knex.js

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

通过JS测量CPU性能

webapp具有处理几何操作的相对繁重的算法作为中心组件.

有两种解决方案可以从高端机器和相对较慢的移动设备访问整个设备.

我可以使用RPC(远程过程调用),如果我检测到用户机器"慢",或者如果我检测到用户机器可以处理它,那么我提供给web-app脚本来处理它客户端侧.

那么检测用户机器速度的可靠方法是什么?

我想在页面加载时提供一个示例脚本作为测试,并检测执行该脚本所花费的时间.

有任何想法吗?

javascript

8
推荐指数
2
解决办法
4663
查看次数

Bootstrap日期选择器中的多个日期

我想在Boostrap-Datepicker中选择多个日期.

我已经初始化了datepicker,就好了.

$('#datepicker2').datepicker();
Run Code Online (Sandbox Code Playgroud)

现在我想在日历上选择多个日期:

$('#datepicker2').datepicker('setDate', [new Date(2014, 2, 5),new Date(2014, 3, 5)]);
Run Code Online (Sandbox Code Playgroud)

它不起作用.未记录任何错误,但未选择日期.


编辑:我使用的datepicker版本与multidates有一些问题,我使用以前的版本,它的工作原理 - 可能是版本问题


这虽然工作得很好:

$('#datepicker2').datepicker('setDate', new Date(2014, 2, 5));
Run Code Online (Sandbox Code Playgroud)

jquery datepicker twitter-bootstrap

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

计算复杂性和形状嵌套

我有SVG的无线路径,我需要在给定的矩形内尽可能有效地打包(尽可能减少空间浪费).经过一些研究,我发现了bin打包算法,它似乎是处理盒子而不是弯曲的随机形状(我的SVG形状非常复杂,包括beziers等).

AFAIK,没有用于实际打包抽象形状的确定性算法.

我希望在这里被证明是错误的,这将是理想的(有一个数学确定性方法来包装它们).如果我是对的而且没有,那么这个问题的最佳方法是什么

主题名称是形状嵌套,嵌套问题或嵌套过程.

在形状嵌套中,没有单一/统一的算法或数学方法来嵌套形状并且可以获得最少的空间浪费.

  • 第一种方法是打包算法(为每个形状创建一个虚构的边界框,并使用矩形2D算法来打包边界框).这种方法速度快,但在空间浪费方面效率最低.

  • 第二种方法是某种增量旋转.该算法以增量步长旋转形状并检查它是否适合空间.在空间浪费方面,这比包装方法更好,但是它的速度非常慢,

有哪些其他课堂示例可以解决这个问题?

time-complexity computational-geometry

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

创建一个在每个缩放级别上重绘的网格

我正在尝试创建一个在每个缩放/平移级别上重绘的网格,以便它仅覆盖当前可查看的屏幕区域.

网格和滚动缩放到鼠标位置的工作方式:

  • 每个zoomIn或zoomOut根据当前可视区域绘制网格(使用paper.view.bounds作为开始绘制网格的位置以及需要多少个单元格的参数)

  • 在创建新网格之前,我还会在每个zoomIn/Out上删除任何先前放置的网格.

这是一个动态网格的概念,它大大提高了性能,因为具有非常大的静态网格具有巨大的性能影响.因此,网格仅覆盖当前可见的屏幕区域.

问题是网格之间没有相对的位置.

  • 缩放在鼠标位置上,因此它改变了 paper.view.bounds对象.遗憾的是,网格绘图功能也使用该对象绘制网格,因此网格不是相对于彼此定位的.

  • 如果我在缩放级别1上绘制一个矩形,然后我放大/缩小矩形不再与网格对齐,因为网格与前一个网格位于相对错误的位置.

有任何想法吗?

canvas paperjs

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

单元测试Polymer中动态渲染的元素

概观

内被动态呈现DOM元素dom-if,dom-repeat <templates>似乎因而被异步呈现使得单元测试一个有点疼痛.


聚合物组分

template(is='dom-if', if='{{!defaultPrintAll}}')
  template(is='dom-repeat', items='{{_pageBucketItems}}')
    button(type='button', class$='{{_computeDefaultClass(item)}}', on-tap='_togglePageClick') {{item}}
Run Code Online (Sandbox Code Playgroud)

考试

  test("Clicking 'Export All' to off, reveals board-selection tiles", function() {
    $("#export-pdf-checkbox-all").siblings(".checkbox").trigger("click");
    Polymer.dom.flush()
    expect($(".board-range__button")).to.be.visible;
  });
Run Code Online (Sandbox Code Playgroud)

为什么它似乎失败了:

单击触发dom-if/ dom-repeat元素的按钮时,不会以同步顺序呈现.

  • dom-if和它的后续/嵌套的dom-repeat异步呈现.

  • 更糟糕的是,在button自身获得的它的类在计算/绑定的方式(介意class$=button).

所以问题归结为:

是否有可能迫使渲染dom-if,dom-repeat和计算的结合在一个类的同步后,我模拟点击激活这些条件全部3个按钮顺序?


笔记:

  • 我正在使用Polymer的官方WCT作为测试工具.
  • 我也在使用chai-jquery.
  • 我也用过,Polymer.dom.flush()但它仍然没有,咳咳..冲洗.
  • 我知道我可以使用chai-as-promised.js它,但它为我的测试添加了不必要的复杂性,这是一个微不足道的事情,所以我想避免它.

chai polymer polymer-1.0 wct

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

如何为永远运行的NodeJS设置内存限制

我跑我的节点JS通过流程永远如下:

sudo永远启动-o out.log -e error.log myServer.js

我想改变我的NodeJs服务器的内存限制,因为我在下面运行纯粹的节点时.

node --max-old-space-size = 512 myServer.js

当我永远地运行它时,我怎么能这样做?有没有像'永远开始--max-old-space-size = 512'的方式

node.js forever

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

在 Node.js 中处理大型 CSV 上传

根据这里的先前线程:

节点异步循环 - 如何使此代码按顺序运行?

...我正在寻找有关处理大型数据上传文件的更广泛的建议。

设想:

用户上传了一个非常大的 CSV 文件,其中包含数十万到数百万行。它使用 multer 流式传输到端点:

const storage = multer.memoryStorage();
const upload = multer({ storage: storage });

router.post("/", upload.single("upload"), (req, res) => {
    //...
});
Run Code Online (Sandbox Code Playgroud)

每一行都被转换成一个 JSON 对象。然后将该对象映射到几个较小的对象中,这些对象需要插入到几个不同的表中,分布在各种微服务容器中并由其访问。

async.forEachOfSeries(data, (line, key, callback) => {
    let model = splitData(line);
    //save model.record1, model.record2, etc. sequentially
});
Run Code Online (Sandbox Code Playgroud)

很明显,使用这种方法我会遇到内存限制。这样做的最有效方式是什么?

javascript asynchronous node.js

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