小编Ori*_*iol的帖子

在C++中设置其值之前检查变量是否更好?

如果我有一个布尔值和一些代码可能会改变它,然后我想将它设置为true,我应该检查它是否是false

例如:

bool b = false;
// Some code
// Here "b" can be true or false
if (cond) {
    b = true;
}
Run Code Online (Sandbox Code Playgroud)

VS

bool b = false;
// Some code
// Here `b` can be `true` or `false`
if (cond && !b){
    b = true;
}
Run Code Online (Sandbox Code Playgroud)

哪个更快?

注意:

我问这是因为以下Eratosthenes筛选的实现:http://bloc.gerardfarras.com/wp-content/uploads/2011/12/erastotenes.txt

if (( i % divisor == 0 ) && ( numsprimers[i] == 0 )) {
    numsprimers[i] = 1;
} …
Run Code Online (Sandbox Code Playgroud)

c++ variables performance

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

如何从SESSID获取$ _SESSION数据?

我有一个PHP websocket服务器(https://github.com/lemmingzshadow/php-websocket/).

当用户连接时,我想设置/获取一些会话数据.

问题是我无法使用,$_SESSION因为如果我这样做,而不是客户端会话,我得到我的websocket服务器的会话.

我设法得到客户的SESSID:

private function handshake($data) { 
    $this->log('Performing handshake');  
    if(preg_match("/PHPSESSID=(.*?)(?:;|\r\n)/", $data, $matches)){
        $sessid = $matches[1];
    }
    /* Do handshake */
}
Run Code Online (Sandbox Code Playgroud)

但现在我不知道如何获得与该SESSID相关的会话数据.

php session-variables sessionid session-cookies websocket

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

我可以使用JavaScript(客户端)创建websocket服务器吗?

我刚刚看到Websockets参考 MDN文章说

WebSocketServer

用于打开新的WebSocket服务器.所需信息是(端口,来源,位置).

那么,这是否意味着我可以创建一个websocket服务器客户端?

如果就是这样,那是否意味着我可以把它变成......(每个箭头都是一个websocket连接)

在此输入图像描述

......进入这个?

在此输入图像描述

但是,浏览器是否有能力在没有任何路由器/防火墙配置的情况下这样做?

我该如何使用它?该WebSocketServer链接被打破.我试过搜索它,但我没有找到任何东西.

javascript websocket

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

"min"和"nanmin"之间的区别是什么?Matlab中的`max`和`nanmax`?

Matlab描述nanminnanmax喜欢这样:

NANMIN最小值,忽略NaNs.

NANMAX最大值,忽略NaNs.

但实际上,minmax忽略了NaNs.

我应该使用哪个?

根据我的测试,nanmin并且nanmax更快.这总是这样吗?

matlab

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

ECMAScript中"正面"和"负面"是什么意思?+0和-0

我正在阅读ECMAScript 5.1规范.它说:

slice方法有两个参数,startend [...].如果start为负,则将其视为 length + start,其中length是数组的长度.如果end为负,则将其视为length + end,其中length是 数组的长度.

"消极"是什么意思?有道理,像数学一样,

  • 如果num > 0,那么num它是积极的
  • 如果num < 0,那么num是否定的.

但是,我们+0-0?在数学中有一个单一的0,不是积极的,也不是消极的.我的猜测是,在ECMAScript中,

  • +0 (又称正零)是积极的.
  • -0 (又称负零)是否定的.

但是我试着用-0slice,和浏览器把它当作非负.

然后,都是+0-0非正非负,尽管他们的名字?

定义数字的正面或负面在哪里?我没有在ECMAScript规范中找到定义.该定义是否继承自IEEE 754?

javascript specifications language-lawyer

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

为什么这个可配置属性不可删除?

可配置属性似乎是可删除的:

var o = {};
Object.defineProperty(o, 'prop', {
    configurable: true,
    value: 'val'
});
delete o.prop; // true
o.prop;        // undefined
Run Code Online (Sandbox Code Playgroud)

但它在以下情况下不起作用,至少在Firefox和Chrome上是这样的:

var form = document.createElement('form'),
    input = document.createElement('input');
form.appendChild(input);
var elems = form.elements;
Object.getOwnPropertyDescriptor(form, 0)
      .configurable; // true <?????????????????????? !!!
delete elems[0];     // false                         ?
elems[0];            // input                         ?
(function(){ 'use strict'; //                         V
    delete elems[0]; // TypeError: property 0 is non-configurable
})();                // and can't be deleted
Run Code Online (Sandbox Code Playgroud)

但这似乎与规范相矛盾.

delete运营商的定义是这样的:

11.4.1 - 删除操作员

生产UnaryExpression:delete UnaryExpression …

javascript properties ecma262 language-lawyer

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

检索CSS需要'getPropertyValue'方法吗?

你能告诉我为什么我们只需要使用这个getPropertyValue方法就可以使用这个方法getComputedStyle吗?

例如,据我所知,这将起作用:

var s = getComputedStyle(element, null).opacity;
Run Code Online (Sandbox Code Playgroud)

这相当于以下内容:

var s = getComputedStyle(element, null).getPropertyValue('opacity');
Run Code Online (Sandbox Code Playgroud)

我们可以getComputedStyle不用getPropertyValue吗?

javascript css cssom

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

可以用(Symbol.iterator)for ...迭代HTMLCollections吗?

DOM4使NodeList可迭代:

interface NodeList {
  getter Node? item(unsigned long index);
  readonly attribute unsigned long length;
  iterable<Node>;
};
Run Code Online (Sandbox Code Playgroud)

根据WebIDL,这意味着

实现被声明为可迭代的接口的对象被迭代以获得一系列值.

注意:在ECMAScript语言绑定中,可迭代的接口将在其接口原型对象上具有"entries","forEach","keys","values"和 @@ iterator属性.

所以以下是可能的:

for (var el of document.querySelectorAll(selector)) ...
Run Code Online (Sandbox Code Playgroud)

我注意到在Firefox和Chrome上同样适用于HTMLCollections:

for (var el of document.getElementsByTagName(tag)) ...
Run Code Online (Sandbox Code Playgroud)

事实上,我得到了

HTMLCollection.prototype[Symbol.iterator] === [][Symbol.iterator]; // true
Run Code Online (Sandbox Code Playgroud)

但是,HTMLCollection未定义为可迭代:

interface HTMLCollection {
  readonly attribute unsigned long length;
  getter Element? item(unsigned long index);
  getter Element? namedItem(DOMString name …
Run Code Online (Sandbox Code Playgroud)

javascript dom iterable language-lawyer htmlcollection

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

无效的分配左侧与三元if

我想创建一个这样的样式表:

var sheet = document.createElement('style'); sheet.type = 'text/css';
sheet.innerHTML = data.style;
Run Code Online (Sandbox Code Playgroud)

似乎 IE需要自己的语法.为了简化这个答案的代码,我试过了

var sheet = document.createElement('style'); sheet.type = 'text/css';
(sheet.styleSheet ? sheet.styleSheet.cssText : sheet.innerHTML) = data.style;
Run Code Online (Sandbox Code Playgroud)

但那引发了ReferenceError: invalid assignment left-hand side.

然后,我必须使用......

var sheet = document.createElement('style'); sheet.type = 'text/css';
if(sheet.styleSheet) sheet.styleSheet.cssText = data.style;
else sheet.innerHTML = data.style;
Run Code Online (Sandbox Code Playgroud)

......还是有更简单的选择?

javascript

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

如何在css中为nav菜单设置border-left?

这是我工作的jsfiddle:http://jsfiddle.net/nalinc/rym2zku1/9/

nav ul,
nav ol {
  list-style: none;
  margin: 0;
  padding: 0;
}
.nav-item ul {
  padding: inherit;
  border: 1px solid black;
  text-align: left;
  border-radius: 4px;
}
.nav-item ul li:hover {
  background-color: #d1d1d1;
}
.nav-bar {
  text-align: center;
}
@media screen and (min-width: 769px) {
  .nav-bar--left {
    display: table;
    table-layout: fixed;
    width: 100%;
    text-align: left;
  }
  .nav-bar--left .grid-item {
    float: none;
    display: table-cell;
    vertical-align: middle;
  }
}
#nav {
  position: relative;
  display: block;
  list-style-type: none;
  padding: 0; …
Run Code Online (Sandbox Code Playgroud)

html css

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