小编tom*_*tom的帖子

在视口中可以看到多少元素

页面上有一个div(棕色矩形).页面高于视口(橙色矩形),因此可以滚动它,这意味着div可能仅部分显示或根本不显示.

元素可见性

什么是最简单的算法来判断div视口中有多少%可见?

(为了简化操作,div始终水平放入视口,因此在计算时只需要考虑Y轴.)

javascript jquery

12
推荐指数
2
解决办法
5828
查看次数

max-width不适用于table-cell

对我来说,预期的行为是,只要容器的宽度不超过500px,中间单元就会水平填充整个空间.但是,无论我缩放页面的大小,中间单元格总是填满100%,忽略max-width属性,巧克力永远不会显示:(

div.container {
    width: 100%;
    display: table;
}
div.container > * {
    display: table-cell;
}
div.middle {
    width: 100%; max-width: 500px;
    background-color: black;
}
div.side {
    width: auto;
    background-color: chocolate;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
    <div class="side"></div>
    <div class="middle">.</div>
    <div class="side"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

导致问题的原因是什么,以及可能的解决方法是什么?

html css

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

处理Set <Foo>的元素并使用流创建Set <Bar>

我有一个Set<String>"hostname:port"对和我想创建一个Set<InetSocketAddress>.我试过它:

Set<InetSocketAddress> ISAAddresses = StrAddresses
    .stream().map(addr -> new InetSocketAddress(
        addr.split(":")[0],
        Integer.parseInt(addr.split(":")[1])));
Run Code Online (Sandbox Code Playgroud)

但这会在IntelliJ中产生以下错误:

不兼容的类型.必需Set<InetSocketAddress>但"map"被推断为Stream<R>:没有类型变量R的实例存在以便Stream<R>符合Set<InetSocketAddress>

我如何使用地图和lambda一定有问题.

java lambda java-8 java-stream

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

Chromium 和 Firefox 显示的颜色不同,我不知道哪个做得对

我一直在 Ubuntu 17.10 下构建网站并使用 Firefox 和 Chromium 进行测试。这两个浏览器显示的颜色完全不同(不仅是图像,而且是所有颜色),我一直认为是 Chromium 由于某种原因错误地使它们过度饱和,所以直到现在我总是选择在 Firefox 中看起来正确的颜色。

但是我开始收到越来越多关于网站背景太紫色的抱怨——在我看来这不应该是因为只有它的颜色 (#eeeeff) 的蓝色部分被“提升”,但它已经达到了一点是更多的人认为它是紫色而不是蓝色,这让我感到困惑。

这是 Firefox(左)和 Chromium(右)中显示的上述颜色。

在 FF 和 Chromium 中显示的颜色 #eeeeff

这就是我看到一个网站的方式:

在此处输入图片说明

差异非常大(请注意,即使是 favicon 也是如此),我要您告诉我在选择网站颜色时我应该信任哪个浏览器,以及我是否可以做些什么来避免它被显示出来在不同的浏览器中不同。

(也有一些用户在 Firefox 中看到过度饱和的颜色。那么现在哪个是正确的,真的吗?)

browser firefox colors chromium css-color

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

使用JAVA程序中的dcm4che连接到dcm4chee

更新资料

我在dcm4che的源代码中进行了更深入的挖掘,发现IncompatibleConnectionException如果

  • 连接“未安装”
  • 或协议类型未设置或不匹配。

我不知道连接已“安装”是什么意思,但是可以手动设置此标志,因此我将其设置为本地和远程连接true(甚至检查getInstalled()是否已“安装”)-是的,现在-以前此属性为null)。

至于协议,未指定它们,因此对于两个连接,我都将它们设置为DICOM

结果:我仍然收到相同的异常。


我想使用dcm4che(5.12.0)工具包在dcm4chee(2.18.3)和我的JAVA应用程序之间建立DICOM关联。

问题在于,似乎没有任何有关如何在JAVA应用程序中使用dcm4che的文档,因此,我所能做的就是阅读dcm4che的源代码,并尝试弄清其类和方法的用途,但是我卡住了 如果有人已经有了一个可行的例子,那将非常有帮助。

到目前为止,我有:

import org.dcm4che3.net.ApplicationEntity;
import org.dcm4che3.net.Association;
import org.dcm4che3.net.Connection;
import org.dcm4che3.net.Device;
import org.dcm4che3.net.pdu.AAssociateRQ;
import org.dcm4che3.net.pdu.PresentationContext;

...

ApplicationEntity locAE = new ApplicationEntity();
locAE.setAETitle("THIS_JAVA_APP");

Connection localConn = new Connection();
localConn.setCommonName("loc_conn");
localConn.setHostname("localhost");
localConn.setPort(11112);
localConn.setProtocol(Connection.Protocol.DICOM);
localConn.setInstalled(true);
locAE.addConnection(localConn);

ApplicationEntity remAE = new ApplicationEntity();
remAE.setAETitle("DCM4CHEE");

Connection remoteConn = new Connection();
remoteConn.setCommonName("rem_conn");
remoteConn.setHostname("localhost");
remoteConn.setPort(11112);
remoteConn.setProtocol(Connection.Protocol.DICOM);
remoteConn.setInstalled(true);
remAE.addConnection(remoteConn);

AAssociateRQ assocReq = new AAssociateRQ();
assocReq.setCalledAET(remAE.getAETitle());
assocReq.setCallingAET(locAE.getAETitle());
assocReq.setApplicationContext("1.2.840.10008.3.1.1.1"); …
Run Code Online (Sandbox Code Playgroud)

java dicom dcm4che

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

使用Express JS检查API请求授权的更好方法

我有一个超级冗余的server.js文件,因为几乎所有属于REST API的方法都以这种方式启动,因为我必须检查API请求,以确保客户端是否有权要求特定的东西。

var jwt = require('jsonwebtoken');

// ...

app.get('/getsomething', function(req, res) {
  "use strict";
  var token = req.headers[tokenName];
  if (token) {
    jwt.verify(token, app.get('some_secret'), {
      ignoreExpiration: false
    }, function(err, decoded) {
      if (err || typeof decoded === "undefined") {
        res.json({
          status: 401,
          message: "unauthorized"
        });
      }
      else { // actual code starts here...
Run Code Online (Sandbox Code Playgroud)

有什么更好的方法?

restful-authentication node.js express jwt graphql

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

以更简单的方式获取树数据结构的深度

我有一个类似 JSON 的 JS 对象层次结构,格式如下:

[
  {
    subs: [ ...other objects... ]
  },
  ...other objects...
]
Run Code Online (Sandbox Code Playgroud)

我编写了一个返回此类层次结构的级别数的方法:

/* Returns the depth of the tree. */
public getDepth(): number {

  function f(obj: object): number {
    let depth = 0;
    if (obj['subs'].length > 0) {
      obj['subs'].forEach((s: object) => {
        const tempDepth = f(s);
        if (tempDepth > depth) depth = tempDepth;
      });
    }
    return depth + 1;
  }

  if (this.tree.length > 0)
    return Math.max(...this.tree.map((s: object) => f(s)));
  else return 0;

}
Run Code Online (Sandbox Code Playgroud)

它有效,但太复杂了。然后,我发现了这个更干净的代码:/sf/answers/1125318351/ …

javascript recursion json typescript

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

如何在触发函数中选择多个变量?

这就是我想要实现的目标:

CREATE FUNCTION f() RETURNS trigger AS $$
  BEGIN
    SELECT COUNT(*) AS total_num, SUM(width) AS total_width
    FROM some_table WHERE foo = NEW.foo;
    IF total_num > 0 AND total_width > 100
    THEN
      RAISE EXCEPTION 'this is bad';
    END IF;
    RETURN NEW;
  END;
$$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

但它在语法上还不正确。

我读过我首先需要DECLARE变量(在本例中total_num为 和total_width),以便我可以使用它们并使用SELECT INTO,但我见过SELECT仅包含单个变量/语句的示例。如果我有更多怎么办?

postgresql plpgsql database-trigger

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

如果调用了抽象方法,则由什么决定调用哪个实现方法?

abstract class A {

  // Here is an event listener that is called when an event occurs.
  // However, this event I don't want to process here but in class C.
  ...
    foo(processMe);
  ...

  // So using this abstract method I'm trying to delegate it to class C.
  public abstract void foo(String processMe);

}

class C extends A {

  // This is the method in which I'd like to handle the event,
  @Override
  public void foo(String processMe) { ... processing …
Run Code Online (Sandbox Code Playgroud)

java

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

如何将Map转换为javax.json.JsonObject?

我可以这样做:

Map<String, String> mapA = ...;
Map<String, String> mapB = mapA.entrySet().stream()
    .collect(Collectors.toMap(
        Map.Entry::getKey,
        Map.Entry::getValue
    ));
Run Code Online (Sandbox Code Playgroud)

但是当我尝试这样做时:

... mapA.entrySet().stream()
    .collect(JsonCollectors.toJsonObject(
        JsonObject.Entry::getKey,
        JsonObject.Entry::getValue
    ));
Run Code Online (Sandbox Code Playgroud)

我明白了

不能从静态上下文中引用非静态方法

对于JsonObject.Entry::getKey, JsonObject.Entry::getValue部分。

为什么?

java lambda javax.json

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