小编swa*_*ang的帖子

bootstrap affix 如何将其修复到父元素

我想以类似于 stackoverflow 的“提问”页面右侧的“如何格式化”的方式使用 bootstrap 词缀。

.affix { top: 70px }我可以通过添加 css并在 html 中使用来使其附加到视口class='affix' data-spy='affix',但是如果我希望将附加元素固定到父元素怎么办?

例如,如果我有这样的html:

<div class='affix-container'>
  <div class='left-panel'>
    some form, including a textarea
  </div>
  <div class='right-panel affix' data-spy='affix'>
    how to format
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

right-panel只想相对于 进行粘贴affix-container,因此当我向下滚动时,如果affix-container仍在视口中,则粘贴right-panel,否则right-panel向上滚动。

如果 affix-container 的大小可以调整,我还可以这样做吗?IE。它的大小/高度随着它包含的文本区域的大小的调整而增加?

javascript css twitter-bootstrap

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

在日志中获取行号是nodejs中没有日志库可以解决的固有问题吗?

我正要在我的应用程序中使用winston,然后我意识到它无法在日志中显示函数名称/行号,我认为这对于调试服务器端应用程序非常重要。

经过一番挖掘,我在温斯顿的 github 问题页面上找到了解释。

他们非常清楚地解释了原因是性能,在每个日志记录调用上获取堆栈跟踪非常昂贵。

然而,当我寻找温斯顿替代品时,我发现一些库已经提供了记录行号的功能,例如 Bunyan、ScribeBristol。我查看了Bristol的源代码,它对函数有以下注释getOrigin

/**
   * Finds the origin of the Bristol log call, and supplies the file path and
   * line number.
   * This function uses JavaScriptStackTraceApi to be as fast as possible:
   * https://code.google.com/p/v8-wiki/wiki/JavaScriptStackTraceApi
Run Code Online (Sandbox Code Playgroud)

我找到了关于这里的文档JavaScriptStackTraceApi

我只是好奇,这与温斯顿家伙谈论的堆栈跟踪类型相同吗?获取行号是 Nodejs 中固有的问题,没有日志库可以解决吗?

我希望记录行号,但不希望以严重的性能损失为代价。Bristol看起来确实不错,有人看过它的性能基准吗?或者任何打开行号功能的日志库的性能基准?

javascript performance logging line-numbers node.js

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

是进口haskell模块作为合格的良好做法?

我知道导入限定名称有利于避免名称冲突.我纯粹是从可读性的角度来看问题.

不熟悉haskell标准库,我在阅读haskell代码(主要来自在线书籍和教程)时发现的一件事是,当我遇到一个函数时,我不知道它是属于导入的模块还是将由用户以后.

来自C++背景,通常认为使用命名空间调用标准库函数是一种很好的做法,例如std :: find.haskell是一样的吗?如果没有,那么你如何克服我上面提到的问题?

haskell

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

如何询问Cmake输出googletest详细结果

通常,如果我make test使用cmake生成的makefile 键入,它将显示如下内容:

    Start 1: UnitTest
1/2 Test #1: UnitTest .........................***Failed    0.01 sec
    Start 2: PerfTest
2/2 Test #2: PerfTest .........................   Passed    0.01 sec

50% tests passed, 1 tests failed out of 2

Total Test time (real) =   0.02 sec

The following tests FAILED:
      1 - UnitTest (Failed)
Run Code Online (Sandbox Code Playgroud)

但是,如果我想看看googletest的实际输出,它告诉我究竟什么失败了怎么办?有没有办法强迫cmake/ctest吐出来?

更新:现在我知道我可以键入ctest -V以显示详细输出,但我怎样才能实现相同的使用make test

c++ cmake googletest

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

什么是node.js模式,用于通过工作进程返回对客户端的响应

如果我想使用Web服务器,消息队列和x N工作进程处理客户端请求,通常的模式是什么?

我能想到的是:

  1. 工作人员从队列中取出作业,处理它,保存结果供客户端轮询.因此,Web服务器和工作者之间没有通信

  2. 工作人员从队列中取出作业,处理它,将其发送到结果队列,这将由Web服务器使用(如何使用express执行此操作?),然后Web服务器将其发送回客户端.同时客户端将等待(这仍称为长轮询吗?)

  3. Web服务器立即返回响应,将作业推送到工作队列.工作人员从队列中获取作业,处理它,将其发送到结果队列,该队列将由Web服务器使用,然后Web服务器通过websocket将其发送给客户端.在这种情况下,客户端不必.

以下哪些最常用?或者有更好的解决方案吗?

http websocket node.js express

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

如何使用C++在抽象语法树中实现if-else分支

我有一个迷你AST结构,其中每个节点可能有一个左和右子,例如:

class AstNode;
typedef std::shared_ptr<AstNode> AstNodePtr;

class AstNode
{
public:
    AstNode()
        : m_children(2)
    {
    }

    virtual ~AstNode()
    {
    }

    virtual void accept(AstNodeVisitor& visitor) = 0;

    void addLeft(const AstNodePtr& child);
    void addRight(const AstNodePtr& child);
    const AstNodePtr left() const;
    const AstNodePtr right() const;

private:
    std::vector<AstNodePtr> m_children;
};
Run Code Online (Sandbox Code Playgroud)

它对我到目前为止所需的操作非常有用,但是当涉及到一个分支语句时,我不知道如何使用这个二叉树结构来实现它.根据维基,分支声明将有3个叶子:

在此输入图像描述

我现在可以侥幸逃脱,因为我的大部分if语句都没有,所以条件将是左子,if-body将是正确的孩子.但它不适用于其他身体.我可以在分支节点本身中嵌入条件,这意味着在分支节点上进行预先遍历遍历,但是感觉不舒服,因为在评估自身时没有其他类型的节点涉及潜在的子树遍历.

也许AST不应该是二叉树,而是每个节点都可以有任意数量的子节点,但这(我认为)会使实现有点尴尬.有什么建议吗?

c++ abstract-syntax-tree

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

为什么 C++ 默认初始化不会对非类类型成员进行零初始化

为什么标准决定在默认初始化期间不对非类类型成员执行任何操作,但在值初始化期间执行初始化

如果总是对非类类型成员执行零初始化会更安全吗?

c++ initialization

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

Haskell Int大小

Haskell中Int(有界整数)的大小是多少,或者我应该在GHC中说什么?

作为练习,我编写了一个简短的程序来获取Int中设置的位数

import Data.Bits

getBits :: Int -> Int
getBits x
    | x == 0 = 0
    | otherwise = 1 + (getBits y)
    where y = x .&. (x - 1)


main = do
    putStrLn "type a integer"
    num <- getLine
    let n = read num :: Int
    putStrLn $ "result is: " ++ show (getBits n)
Run Code Online (Sandbox Code Playgroud)

如果输入数字-1,则结果为64,表示Int的大小为64位.为什么会这样?为什么它不像C/C++那样是32位?

haskell

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