小编try*_*lly的帖子

当前分支及其跟踪的分支的任何Git快捷方式?

我想做这样的事情:

$ git fetch origin
$ git rebase -i origin/a_very_very_very_long_branch_name
Run Code Online (Sandbox Code Playgroud)

在哪里,我的本地分支名称与a_very_very_very_long_branch_name.

因此,当我执行这种命令时,我不想一次又一次地复制和粘贴长分支名称.

Git中有当前分支名称的快捷方式吗?

git branch shortcut

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

Java:从字节数组中删除连续的零段

例如,假设我想从数组中删除0个长度超过3个字节的所有连续段

byte a[] = {1,2,3,0,1,2,3,0,0,0,0,4};
byte r[] = magic(a);
System.out.println(r);
Run Code Online (Sandbox Code Playgroud)

结果

{1,2,3,0,1,2,3,4}
Run Code Online (Sandbox Code Playgroud)

我想在Java中执行类似正则表达式的操作,但是在字节数组而不是字符串上.

有什么东西可以帮助我内置(或者是否有一个好的第三方工具),还是我需要从头开始工作?

字符串是UTF-16,所以来回转换不是一个好主意?至少它浪费了大量的开销......对吧?

java regex arrays

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

JavaScript:是否有一个完全支持外观的正则表达式库?

由于JavaScript的内置正则表达式库不支持lookbehind,我想知道是否有一个纯粹在JavaScript中实现正则表达式引擎的库.

在我的情况下,性能无关紧要(只要在短字符串中搜索简单表达式不需要几秒或更长时间).

javascript regex

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

使用“new Function(...)”的安全注意事项(在渲染期间,来自我的 Javascript 源的表达式)

我想用new Function(...)非常精简的代码生成一个函数。我想这样做

  • 避免自己解析表达式
  • 尽可能灵活。

eval()尽可能避免。但我不确定它是否足够安全使用new Function(...),这也被称为容易出现安全漏洞。

背景

我想管理菜单按钮的状态。所以,在定义按钮时,我想写一些类似的东西

 {
 ..., // More button definition
 state: "isInEditmode && (isWidgetSelected || isCursorInWidget),
 ...
 }
Run Code Online (Sandbox Code Playgroud)

在处理多个事件期间的 statechange 时,我将根据属性中的状态检查(总结)当前整体状态对象的状态states

因此,我将在渲染时生成一个函数并将其附加为 DOM 对象属性,而不是这样的 DOM 属性

 ...
 $el.stateFn = new Function("stateObj", "with (stateObj) {return " + item.state + ";}");
 ...
Run Code Online (Sandbox Code Playgroud)

测试状态:

 visible = $el.stateFn.call(currentStates, currentStates);
Run Code Online (Sandbox Code Playgroud)

with语句帮助我提供当前state对象的属性作为变量,这样上面的表达式就不需要像obj.isInEditmode.

安全问题

在我看来,这不会引入安全漏洞,因为附加到 DOM 对象的函数是在渲染时生成并从源读取的。还是我错了?我应该避免这种情况吗?

性能提示表示赞赏(评论)(我认为只要我Function在渲染期间评估一次新的,这是可以接受的)。

编辑 1

  • 我正在使用 Backbone.js。使用另一个框架是不可能的。
  • 某些菜单项需要绑定到不同甚至多个模型。 …

javascript security evaluation eval code-injection

5
推荐指数
2
解决办法
2241
查看次数

NodeJS中不同路径的并行请求:长时间运行路径1阻塞其他路径

我正在尝试简单的NodeJS应用程序,以便我能够理解异步性质.

但我的问题是,一旦我/home从浏览器点击" "它等待响应,同时当" /"被击中时,它首先等待/home""的响应,然后响应" /"请求.

我担心的是,如果其中一个请求需要大量处理,那么我们不能再请求另一个请求了吗?它是否正确?

    app.get("/", function(request, response) {
        console.log("/ invoked");
        response.writeHead(200, {'Content-Type' : 'text/plain'});
        response.write('Logged in! Welcome!');
        response.end();
    });

    app.get("/home", function(request, response) {
        console.log("/home invoked");
        var obj = {
            "fname" : "Dead",
            "lname" : "Pool"
        }
        for (var i = 0; i < 999999999; i++) {
            for (var i = 0; i < 2; i++) {
                // BS
            };  
        };
        response.writeHead(200, {'Content-Type' : 'application/json'});
        response.write(JSON.stringify(obj));
        response.end();
    });
Run Code Online (Sandbox Code Playgroud)

node.js

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

Service Worker:如何在服务器上更改文件时更新缓存?

你使用什么缓存策略?我阅读了脱机食谱,最简单的策略是缓存静态内容,遗漏API调用.

这个策略看起来像这样:

  1. 检查请求是否已在缓存中
  2. 如果没有将请求,响应对添加到缓存
  3. 回复

如果在服务器端文件已更改,如何更新缓存?目前,客户端始终获得缓存结果.

这是我的缓存策略的代码:

// You will need this polyfill, at least on Chrome 41 and older.
importScripts("serviceworker-cache-polyfill.js");

var VERSION = 1;

var CACHES = {
    common: "common-cache" + VERSION
};

// an array of file locations we want to cache
var filesToCache = [
    "font-cache.html",
    "script.js",
];

var neededFiles = [
    "index.html"
];

var errorResponse = function() {

    return new Response([
            "<h2>Failed to get file</h2>",
            "<p>Could not retrive response from cache</p>"
        ].join("\n"),
        500
    );
}; …
Run Code Online (Sandbox Code Playgroud)

javascript browser-cache service-worker

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

Chrome 的重新计算样式事件涉及什么?

TL; 博士

是什么导致在 Chrome 中重新计算样式以及如何减少此步骤的时间?

背景

在具有许多元素(变量,例如 10,000)的应用程序中,在这些元素的父元素上添加类时,我观察到重新计算样式需要很长时间。当容器有这个类时,有选择器会影响每个子树的元素。

在开发人员工具中,我能够通过单击此处(MCVE 的屏幕截图)来跟踪重新计算样式事件的原因:

Chrome 开发工具:如何追溯事件原因

从到名称我假设这一步涉及计算有效(最终)元素样式。我认为这发生在

  1. 改变了元素样式,
  2. 一个改变的(伪)类

    • 元素本身或
    • 由选择器关联的父元素或兄弟元素的
  3. 更改的 CSS 选择器(导入新 CSS,生成<style>

强制浏览器重新计算元素的 CSS 属性。

尝试证明我的论文

我使用与静态 HTML 相同数量的元素创建了一个 MCVE,并使用文档上的处理程序在a.change上切换类- 死的简单代码。.containerclick

MCVE 的性能比实际应用程序要好得多,重新计算样式步骤花费的时间更少。这可能是由于更简单的树和更少的样式。

然后我开始向所有选择器添加更多样式,并且每增加一组新的 CSS 属性,平均时间就会增加。向 10,000 个子树添加更多元素并没有改变平均时间。

所以,我想说这次影响的是 CSS 属性的数量、受影响的选择器的数量和受影响的元素的数量。

css rendering google-chrome reflow

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

Git:防止暂存某些文件,自动暂存所有文件

我想取消暂存当前工作副本中的所有内容,但会自动暂存我将来编辑的所有文件和大块

例如,我使用的 CocoaPods 版本与我正在从事的项目中的大多数其他人不同。我想升级配置文件的配置以与我的 CocoaPods 兼容,而不会破坏他们的。最简单的方法是不在拉取请求中包含新配置,但这意味着我无法构建。隐藏和弹出将不起作用,因为如果我在编辑配置后隐藏然后应用我的更改,弹出将修复配置但撤消我的更改。

我应该如何解决这个问题?

git git-stash git-stage

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

在Maven(Java)中获取目标目录路径

在Maven项目中,我想将一些测试结果写入项目目标目录中的文件中。每当我得到项目目录时,它实际上是在获取IntelliJ项目目录,而不是实际的Maven目录。

java maven

5
推荐指数
3
解决办法
8493
查看次数

Sinon:嘲笑 NodeJs 的 fs.readFile() 不适用于 sinon.stub()

我正在尝试对模块中的一个函数进行单元测试,该模块使用其他依赖项,例如fsaws-sdk。

问题是我不能模拟fs图书馆..

var readFileAsync = Promise.promisify(require('fs').readFile);

function uploadAttachment(fileMetadata) {
    return readFileAsync(fileMetadata.fd)
    .then(function(file) {
      var options = {
       ...
      };
      return _uploadToS3(options);
    })
    .then(function (result) {
      return result;
    });
  }
}
Run Code Online (Sandbox Code Playgroud)

我一直在尝试使用 Sinon 库来删除fsreadFile和我自己的承诺函数。

stub = sinon
.stub(fs, 'readFile')
.returns("some data");

promiseStub = sinon
.stub(FileService, 'readFileAsync')
.returns("some data");
Run Code Online (Sandbox Code Playgroud)

但是当我运行我的测试时,它似乎没有运行我的存根函数并且没有设置calledOnetrue,而是运行该fs函数并且找不到路径并抛出错误。

  [Error: ENOENT: no such file or directory, open '/path/to/file/3f191fa8-4330-436a-9f85-4054f8fa6a67.pdf']
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing sinon sails.js

5
推荐指数
0
解决办法
1929
查看次数