小编JBE*_*JBE的帖子

插件依赖关系的Maven依赖关系管理

最近,我遇到了以下问题:

当我为我的项目设置依赖项管理时,我使用带有依赖项的插件进行了子操作,我希望与依赖项管理中声明的依赖项同步.

在根pom中,我在我的依赖管理中声明:

<dependencyManagement>
    <dependencies>
      ...
        <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-user</artifactId>
            <version>2.4.0</version>
        </dependency>
      ...
    <dependencies>
<dependencyManagement>
Run Code Online (Sandbox Code Playgroud)

在孩子pom中,我有一个需要gwt-user的插件:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>gwt-maven-plugin</artifactId>
    <version>2.4.0</version>
    <dependencies>
        <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-user</artifactId>
            <version>2.4.0</version>
        </dependency>
            ...
        </dependencies>
  ...
</plugin>
Run Code Online (Sandbox Code Playgroud)

但是,如果我删除gwt-maven-plugin中使用的依赖版本,则编译失败.

还有另一种方法可以实现吗?

PS:在maven和maven插件中有一个相关的帖子选择依赖版本,它没有回答我的问题

java maven

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

为什么点击设置innerHTML会在Chrome上触发两个解析事件?

使用Chrome开发者工具中的时间轴,我使用这一小段代码通过innerHTML记录事件:

<!DOCTYPE html>

<html>
<head>
  <script>
    function test(){
      var wrap = document.getElementById('wrapper');
      wrap.innerHTML = "test";
    }
  </script>
</head>

<body>
  <input type="button" value="click" onClick="test();"/>
  <div id="wrapper"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我可以看到,一旦运行测试方法,就会触发两个解析事件:

Chrome时间轴显示解析双重事件

我使用的是Chrome版本23.0.1271.64 m

这是预期的吗?这是Chrome开发人员工具中的错误吗?或者Chrome下有什么需要改进的地方?

html javascript google-chrome google-chrome-devtools

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

ES6模块串联

在开发Web项目的JavaScript ES6,我目前使用Traceur从ES6编译我的模块ES5,认为在将来,当浏览器将支持ES6,我就可以跳过这一步transpilation.

最后,因为我不想在启动时下载几个js片段,所以我有一个文件,其中包含我转换成ES5的所有模块,感谢Traceur.

但是为了验证这个选择,我想知道在我保留ES6源代码的那一天是否仍然可能.如果我只是连接它们,将会有无效的导入和名称冲突.

看起来它没有为它设计,它需要额外的处理步骤来正确合并它们.

我们如何处理用几个模块定义的ES6单文件项目?

javascript node.js ecmascript-6

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

React和ES6继承

注意:此帖已在React不支持ES6(v12)时发布.

我有一个ES6课程:

class BaseClass {
  getInitialState(){
      return {message: 'Hello!'};
  }

  render() {
      return (
            <div>
                <div>{this.state.message}</div>
            </div>
        )
  }
}
Run Code Online (Sandbox Code Playgroud)

我可以使用这个表达式在ES6中导出(来源:反应ES6 browserify)

export default React.createClass(BaseClass.prototype)
Run Code Online (Sandbox Code Playgroud)

这很好用.现在我想使用ES6继承来扩展我的BaseClass类:

class ExtendedClass extends BaseClass{
    getInitialState(){
        return {message: "Hello! I'm an extension"};
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我React.createClassExtendedClass课堂上打电话时,我得到以下异常:

Invariant Violation: ReactCompositeComponentInterface: You are attempting to define `constructor` on your component more than once. This conflict may be due to a mixin.
Run Code Online (Sandbox Code Playgroud)

我知道React 0.13应该更符合ES6,但有没有办法解决这个问题?

编辑:

我正在使用Traceur来编译我的ES6类.输出ExtendedClass看起来像:

function ExtendedClass() …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 reactjs traceur

7
推荐指数
2
解决办法
3504
查看次数

性能测试独立于迭代次数

试图回答这张票:instanceof和Class.isAssignableFrom(...)有什么区别?

我做了一个性能测试:

class A{}
class B extends A{}

A b = new B();

void execute(){
  boolean test = A.class.isAssignableFrom(b.getClass());
  // boolean test = A.class.isInstance(b);
  // boolean test = b instanceof A;
}

@Test
public void testPerf() {
  // Warmup the code
  for (int i = 0; i < 100; ++i)
    execute();

  // Time it
  int count = 100000;
  final long start = System.nanoTime();
  for(int i=0; i<count; i++){
     execute();
  }
  final long elapsed = System.nanoTime() - start;
System.out.println(count+" iterations took …
Run Code Online (Sandbox Code Playgroud)

java performance

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

Flexbox项目的高度与其内容无关

我知道这听起来又像是关于flexbox的另一个问题,该问题在其他地方已解决,但我找不到来自Google或stackoverflow现有帖子的解决方案。

问题很简单。

我在父div中有3个子div,其中一个包含的内容大于其最终大小。我希望每个孩子都是1/3其父母,无论其内容如何。

这是小提琴:http : //jsfiddle.net/xeqo0msq/

这是HTML:

<div class="parent">
   <div class="child red">
       <div class="content">1</div>
   </div>
   <div class="child blue">2</div>
   <div class="child green">3</div>
</div>
Run Code Online (Sandbox Code Playgroud)

以及相关的CSS:

.parent {
   display: flex;
   flex-direction: column; /*or row*/
   height: 100%;
   width: 100%;
}

.child {
   flex: 1;
}

.content{
   width: 800px;
   height: 100px;
}

.red {background: red;}
.blue {background: blue;}
.green {background: green;}
Run Code Online (Sandbox Code Playgroud)

因为flex-direction: row;它按预期工作:每个孩子都是1/3其父母,尽管第一个内容要大得多。宽度就像是独立于内容一样。

Flex Row屏幕截图

因为flex-direction: column;第一个孩子比另外两个孩子大得多。

Flex Column屏幕截图

是否可以使用flexbox和实现此目的flex-direction: column;

css css3 flexbox

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

大型应用程序的回流/布局性能

我正在使用GWT来构建一个性能正常的HTML应用程序.

有时,它可以在DOM中加载许多对象,并且应用程序变得很慢.我使用Chrome开发者工具分析器来查看花费的时间(在应用程序编译后在Chrome下,即没有GWT开销),很明显方法getAbsoluteLeft()/ getBoundingClientRect()消耗了这段时间的主要部分.

以下是Chrome(com.google.gwt.dom.client.DOMImplStandardBase)下使用的实现:

private static native ClientRect getBoundingClientRect(Element element) /*-{
  return element.getBoundingClientRect && element.getBoundingClientRect();
}-*/;

@Override
public int getAbsoluteLeft(Element elem) {
  ClientRect rect = getBoundingClientRect(elem);
  return rect != null ? rect.getLeft()
     + elem.getOwnerDocument().getBody().getScrollLeft()
     : getAbsoluteLeftUsingOffsets(elem);
}
Run Code Online (Sandbox Code Playgroud)

这对我来说很有意义,因为DOM中的元素越多,计算绝对位置所需的时间就越多.但令人沮丧的是,因为有时你只知道你的应用程序的一个子部分已经改变了,而这些方法仍然需要时间来计算绝对定位,可能是因为它不必要地重新检查了一大堆DOM元素.我的问题不一定是面向GWT的,因为它是一个与浏览器/ javascript相关的问题:

有没有任何已知的解决方案来改善大型DOM元素应用程序的GWT getAbsoluteLeft/javascript getBoundingClientRect问题?

我没有在互联网上找到任何线索,但我想到的解决方案如下:

  • (减少这些方法的调用次数:-) ...
  • 通过iframe隔离DOM的一部分,以减少浏览器必须评估的元素数量以获得绝对位置(尽管它会使难以通信的组件......)
  • 在同样的想法中,可能有一些css属性(溢出,位置?)或一些html元素(如iframe)告诉浏览器跳过dom的整个部分或者只是帮助浏览器更快地获得绝对位置

编辑:

使用Chrome TimeLine调试器,并在DOM中有很多元素时执行特定操作,我有平均性能:

  • 重新计算风格:几乎为零
  • 油漆:接近1毫秒
  • 布局:近900ms

布局需要900毫秒通过getBoundingClientRect方法.此页面列出了在WebKit中触发布局的所有方法,包括getBoundingClientRect ...

由于我在dom中有许多不受我的操作影响的元素,我假设布局在整个DOM中进行重新计算,而paint可以通过css属性/ DOM树来缩小其范围(我可以通过firebug中的MozAfterPaintEvent看到它)例).

除了分组和调用触发布局的方法,有关如何减少布局时间的任何线索?

一些相关文章:

html javascript gwt dom

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